Generated by Cython 3.0.2
Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.
Raw output: _le_radiality.c
+001: # cython: infer_types=True, wraparound=False, nonecheck=False, boundscheck=False, cdivision=True, language_level=3, profile=False, autogen_pxd=False
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_4) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
002:
+003: import numpy as np
__pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_numpy, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_7) < 0) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
004: cimport numpy as np
005:
006: from cython.parallel import parallel, prange
007:
008: from libc.math cimport sqrt, pi, fabs, cos, sin
+009: from .__liquid_engine__ import LiquidEngine
__pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_n_s_LiquidEngine); __Pyx_GIVEREF(__pyx_n_s_LiquidEngine); if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_LiquidEngine)) __PYX_ERR(0, 9, __pyx_L1_error); __pyx_t_4 = __Pyx_Import(__pyx_n_s_liquid_engine, __pyx_t_7, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_LiquidEngine); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_d, __pyx_n_s_LiquidEngine, __pyx_t_7) < 0) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+010: from .__opencl__ import cl, cl_array
__pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_n_s_cl); __Pyx_GIVEREF(__pyx_n_s_cl); if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_cl)) __PYX_ERR(0, 10, __pyx_L1_error); __Pyx_INCREF(__pyx_n_s_cl_array); __Pyx_GIVEREF(__pyx_n_s_cl_array); if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 1, __pyx_n_s_cl_array)) __PYX_ERR(0, 10, __pyx_L1_error); __pyx_t_7 = __Pyx_Import(__pyx_n_s_opencl_2, __pyx_t_4, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_cl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_cl, __pyx_t_4) < 0) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_cl_array); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_cl_array, __pyx_t_4) < 0) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+011: from .__interpolation_tools__ import check_image
__pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_n_s_check_image); __Pyx_GIVEREF(__pyx_n_s_check_image); if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_check_image)) __PYX_ERR(0, 11, __pyx_L1_error); __pyx_t_4 = __Pyx_Import(__pyx_n_s_interpolation_tools, __pyx_t_7, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_check_image); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_d, __pyx_n_s_check_image, __pyx_t_7) < 0) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+012: from nanopyx.liquid import CRShiftAndMagnify
__pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_n_s_CRShiftAndMagnify); __Pyx_GIVEREF(__pyx_n_s_CRShiftAndMagnify); if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_CRShiftAndMagnify)) __PYX_ERR(0, 12, __pyx_L1_error); __pyx_t_7 = __Pyx_Import(__pyx_n_s_nanopyx_liquid, __pyx_t_4, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_CRShiftAndMagnify); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CRShiftAndMagnify, __pyx_t_4) < 0) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+013: from nanopyx.core.utils.timeit import timeit2
__pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_n_s_timeit2); __Pyx_GIVEREF(__pyx_n_s_timeit2); if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_timeit2)) __PYX_ERR(0, 13, __pyx_L1_error); __pyx_t_4 = __Pyx_Import(__pyx_n_s_nanopyx_core_utils_timeit, __pyx_t_7, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_timeit2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_d, __pyx_n_s_timeit2, __pyx_t_7) < 0) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
014:
015: cdef extern from "_c_interpolation_catmull_rom.h":
016: pass
017:
018: cdef extern from "_c_sr_radiality.h":
019: float _c_calculate_radiality_per_subpixel(int i, int j, float* imGx, float* imGy, float* xRingCoordinates, float* yRingCoordinates, int magnification, float ringRadius, int nRingCoordinates, int radialityPositivityConstraint, int h, int w) nogil
020:
021: cdef extern from "_c_gradients.h":
022: void _c_gradient_radiality(float* image, float* imGc, float* imGr, int rows,
023: int cols) nogil
024:
025: # cdef float Gx_Gy_MAGNIFICATION = 2.0
026:
+027: class Radiality(LiquidEngine):
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_LiquidEngine); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4)) __PYX_ERR(0, 27, __pyx_L1_error); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_4, __pyx_n_s_Radiality, __pyx_n_s_Radiality, (PyObject *) NULL, __pyx_n_s_nanopyx_liquid__le_radiality, __pyx_kp_s_Radial_gradient_convergence_usi); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_4 != __pyx_t_7) { if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(0, 27, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); /* … */ __pyx_t_11 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_n_s_Radiality, __pyx_t_4, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__Pyx_CyFunction_InitClassCell(__pyx_t_7, __pyx_t_11) < 0) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_Radiality, __pyx_t_11) < 0) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
028: """
029: Radial gradient convergence using the NanoPyx Liquid Engine
030: """
031:
+032: def __init__(self, clear_benchmarks=False, testing=False):
/* Python wrapper */
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_1__init__(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_1__init__ = {"__init__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_1__init__(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_clear_benchmarks = 0;
PyObject *__pyx_v_testing = 0;
#if !CYTHON_METH_FASTCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
#if !CYTHON_METH_FASTCALL
#if CYTHON_ASSUME_SAFE_MACROS
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args);
if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 32, __pyx_L3_error)
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_clear_benchmarks,&__pyx_n_s_testing,0};
PyObject* values[3] = {0,0,0};
values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_False)));
values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_False)));
if (__pyx_kwds) {
Py_ssize_t kw_args;
switch (__pyx_nargs) {
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 32, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_clear_benchmarks);
if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 32, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_testing);
if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 32, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 32, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_clear_benchmarks = values[1];
__pyx_v_testing = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 32, __pyx_L3_error)
goto __pyx_L3_error;
__pyx_L3_error:;
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality___init__(__pyx_self, __pyx_v_self, __pyx_v_clear_benchmarks, __pyx_v_testing);
/* function exit code */
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_clear_benchmarks, PyObject *__pyx_v_testing) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__22 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_clear_benchmarks, __pyx_n_s_testing); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 32, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__22);
__Pyx_GIVEREF(__pyx_tuple__22);
__pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_nanopyx_liquid__le_radiality, __pyx_n_s_init, 32, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(0, 32, __pyx_L1_error)
/* … */
__pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_1__init__, 0, __pyx_n_s_Radiality___init, NULL, __pyx_n_s_nanopyx_liquid__le_radiality, __pyx_d, ((PyObject *)__pyx_codeobj__23)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 32, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_INCREF(__pyx_t_10);
PyList_Append(__pyx_t_7, __pyx_t_10);
__Pyx_GIVEREF(__pyx_t_10);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_tuple__24);
if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_init, __pyx_t_10) < 0) __PYX_ERR(0, 32, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_tuple__24 = PyTuple_Pack(2, ((PyObject *)Py_False), ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 32, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__24);
__Pyx_GIVEREF(__pyx_tuple__24);
+033: self._designation = "Radiality"
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_designation, __pyx_n_u_Radiality) < 0) __PYX_ERR(0, 33, __pyx_L1_error)
+034: super().__init__(clear_benchmarks=clear_benchmarks, testing=testing,
__pyx_t_1 = __Pyx_CyFunction_GetClassObj(__pyx_self); if (!__pyx_t_1) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 34, __pyx_L1_error) } __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error); __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self)) __PYX_ERR(0, 34, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_clear_benchmarks, __pyx_v_clear_benchmarks) < 0) __PYX_ERR(0, 34, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_testing, __pyx_v_testing) < 0) __PYX_ERR(0, 34, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+035: unthreaded_=False, threaded_=True, threaded_static_=True,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_unthreaded, Py_False) < 0) __PYX_ERR(0, 34, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_threaded, Py_True) < 0) __PYX_ERR(0, 34, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_threaded_static, Py_True) < 0) __PYX_ERR(0, 34, __pyx_L1_error)
+036: threaded_dynamic_=True, threaded_guided_=True, opencl_=True)
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_threaded_dynamic, Py_True) < 0) __PYX_ERR(0, 34, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_threaded_guided, Py_True) < 0) __PYX_ERR(0, 34, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_opencl, Py_True) < 0) __PYX_ERR(0, 34, __pyx_L1_error)
037:
+038: self._default_benchmarks = {'OpenCL': {"(['shape(100, 100, 100)', 'shape(100, 500, 500)', 'number(5)', 'number(0.5)', 'number(0)', True, True], {})": [62500000000000.0, 0.9875555419998818, 0.9819192090008073, 0.9873175410002659], "(['shape(100, 150, 150)', 'shape(100, 750, 750)', 'number(5)', 'number(0.5)', 'number(0)', True, True], {})": [316406250000000.0, 2.204043416999866, 2.202929583000696, 2.2014064169998164]}, 'Threaded': {"(['shape(100, 100, 100)', 'shape(100, 500, 500)', 'number(5)', 'number(0.5)', 'number(0)', True, True], {})": [62500000000000.0, 3.56841600000007, 3.5533971249997194, 3.2480534169999373], "(['shape(100, 150, 150)', 'shape(100, 750, 750)', 'number(5)', 'number(0.5)', 'number(0)', True, True], {})": [316406250000000.0, 7.231931541999984, 7.29744833300083, 7.1096272920003685]}, 'Threaded_dynamic': {"(['shape(100, 100, 100)', 'shape(100, 500, 500)', 'number(5)', 'number(0.5)', 'number(0)', True, True], {})": [62500000000000.0, 2.7894346250000126, 2.778901292000228, 2.714467834000061], "(['shape(100, 150, 150)', 'shape(100, 750, 750)', 'number(5)', 'number(0.5)', 'number(0)', True, True], {})": [316406250000000.0, 6.166010375000042, 6.16195045799941, 6.185223917000258]}, 'Threaded_guided': {"(['shape(100, 100, 100)', 'shape(100, 500, 500)', 'number(5)', 'number(0.5)', 'number(0)', True, True], {})": [62500000000000.0, 2.7807863329999236, 2.714370166999288, 2.720014749999791], "(['shape(100, 150, 150)', 'shape(100, 750, 750)', 'number(5)', 'number(0.5)', 'number(0)', True, True], {})": [316406250000000.0, 6.414935042000252, 6.137087832999896, 6.186802750000425]}, 'Threaded_static': {"(['shape(100, 100, 100)', 'shape(100, 500, 500)', 'number(5)', 'number(0.5)', 'number(0)', True, True], {})": [62500000000000.0, 3.3877954579998004, 3.466373499999463, 3.2974376660004054], "(['shape(100, 150, 150)', 'shape(100, 750, 750)', 'number(5)', 'number(0.5)', 'number(0)', True, True], {})": [316406250000000.0, 7.016077875000519, 7.207373291999829, 7.122106583999994]}}
__pyx_t_3 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_62500000000000_0); __Pyx_GIVEREF(__pyx_float_62500000000000_0); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_62500000000000_0)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_0_9875555419998818); __Pyx_GIVEREF(__pyx_float_0_9875555419998818); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_0_9875555419998818)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_0_9819192090008073); __Pyx_GIVEREF(__pyx_float_0_9819192090008073); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_0_9819192090008073)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_0_9873175410002659); __Pyx_GIVEREF(__pyx_float_0_9873175410002659); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_0_9873175410002659)) __PYX_ERR(0, 38, __pyx_L1_error); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_shape_100_100_100_shape_100_500, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_316406250000000_0); __Pyx_GIVEREF(__pyx_float_316406250000000_0); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_316406250000000_0)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_2_204043416999866); __Pyx_GIVEREF(__pyx_float_2_204043416999866); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_2_204043416999866)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_2_202929583000696); __Pyx_GIVEREF(__pyx_float_2_202929583000696); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_2_202929583000696)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_2_2014064169998164); __Pyx_GIVEREF(__pyx_float_2_2014064169998164); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_2_2014064169998164)) __PYX_ERR(0, 38, __pyx_L1_error); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_shape_100_150_150_shape_100_750, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_OpenCL, __pyx_t_1) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_62500000000000_0); __Pyx_GIVEREF(__pyx_float_62500000000000_0); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_62500000000000_0)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_3_56841600000007); __Pyx_GIVEREF(__pyx_float_3_56841600000007); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_3_56841600000007)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_3_5533971249997194); __Pyx_GIVEREF(__pyx_float_3_5533971249997194); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_3_5533971249997194)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_3_2480534169999373); __Pyx_GIVEREF(__pyx_float_3_2480534169999373); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_3_2480534169999373)) __PYX_ERR(0, 38, __pyx_L1_error); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_shape_100_100_100_shape_100_500, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_316406250000000_0); __Pyx_GIVEREF(__pyx_float_316406250000000_0); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_316406250000000_0)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_7_231931541999984); __Pyx_GIVEREF(__pyx_float_7_231931541999984); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_7_231931541999984)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_7_29744833300083); __Pyx_GIVEREF(__pyx_float_7_29744833300083); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_7_29744833300083)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_7_1096272920003685); __Pyx_GIVEREF(__pyx_float_7_1096272920003685); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_7_1096272920003685)) __PYX_ERR(0, 38, __pyx_L1_error); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_shape_100_150_150_shape_100_750, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_Threaded, __pyx_t_1) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_62500000000000_0); __Pyx_GIVEREF(__pyx_float_62500000000000_0); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_62500000000000_0)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_2_7894346250000126); __Pyx_GIVEREF(__pyx_float_2_7894346250000126); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_2_7894346250000126)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_2_778901292000228); __Pyx_GIVEREF(__pyx_float_2_778901292000228); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_2_778901292000228)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_2_714467834000061); __Pyx_GIVEREF(__pyx_float_2_714467834000061); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_2_714467834000061)) __PYX_ERR(0, 38, __pyx_L1_error); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_shape_100_100_100_shape_100_500, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_316406250000000_0); __Pyx_GIVEREF(__pyx_float_316406250000000_0); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_316406250000000_0)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_6_166010375000042); __Pyx_GIVEREF(__pyx_float_6_166010375000042); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_6_166010375000042)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_6_16195045799941); __Pyx_GIVEREF(__pyx_float_6_16195045799941); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_6_16195045799941)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_6_185223917000258); __Pyx_GIVEREF(__pyx_float_6_185223917000258); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_6_185223917000258)) __PYX_ERR(0, 38, __pyx_L1_error); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_shape_100_150_150_shape_100_750, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_Threaded_dynamic, __pyx_t_1) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_62500000000000_0); __Pyx_GIVEREF(__pyx_float_62500000000000_0); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_62500000000000_0)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_2_7807863329999236); __Pyx_GIVEREF(__pyx_float_2_7807863329999236); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_2_7807863329999236)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_2_714370166999288); __Pyx_GIVEREF(__pyx_float_2_714370166999288); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_2_714370166999288)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_2_720014749999791); __Pyx_GIVEREF(__pyx_float_2_720014749999791); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_2_720014749999791)) __PYX_ERR(0, 38, __pyx_L1_error); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_shape_100_100_100_shape_100_500, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_316406250000000_0); __Pyx_GIVEREF(__pyx_float_316406250000000_0); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_316406250000000_0)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_6_414935042000252); __Pyx_GIVEREF(__pyx_float_6_414935042000252); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_6_414935042000252)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_6_137087832999896); __Pyx_GIVEREF(__pyx_float_6_137087832999896); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_6_137087832999896)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_6_186802750000425); __Pyx_GIVEREF(__pyx_float_6_186802750000425); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_6_186802750000425)) __PYX_ERR(0, 38, __pyx_L1_error); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_shape_100_150_150_shape_100_750, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_Threaded_guided, __pyx_t_1) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_62500000000000_0); __Pyx_GIVEREF(__pyx_float_62500000000000_0); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_62500000000000_0)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_3_3877954579998004); __Pyx_GIVEREF(__pyx_float_3_3877954579998004); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_3_3877954579998004)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_3_466373499999463); __Pyx_GIVEREF(__pyx_float_3_466373499999463); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_3_466373499999463)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_3_2974376660004054); __Pyx_GIVEREF(__pyx_float_3_2974376660004054); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_3_2974376660004054)) __PYX_ERR(0, 38, __pyx_L1_error); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_shape_100_100_100_shape_100_500, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_float_316406250000000_0); __Pyx_GIVEREF(__pyx_float_316406250000000_0); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_316406250000000_0)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_7_016077875000519); __Pyx_GIVEREF(__pyx_float_7_016077875000519); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_7_016077875000519)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_7_207373291999829); __Pyx_GIVEREF(__pyx_float_7_207373291999829); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_float_7_207373291999829)) __PYX_ERR(0, 38, __pyx_L1_error); __Pyx_INCREF(__pyx_float_7_122106583999994); __Pyx_GIVEREF(__pyx_float_7_122106583999994); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_7_122106583999994)) __PYX_ERR(0, 38, __pyx_L1_error); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_shape_100_150_150_shape_100_750, __pyx_t_2) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_Threaded_static, __pyx_t_1) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_default_benchmarks, __pyx_t_3) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
039:
+040: def run(self, image, image_interp, magnification: int = 5, ringRadius: float = 0.5, border: int = 0, radialityPositivityConstraint: bool = True, doIntensityWeighting: bool = True, run_type = None):
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality___defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_magnification);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_magnification);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_magnification)) __PYX_ERR(0, 40, __pyx_L1_error);
__Pyx_GIVEREF(__pyx_t_1);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_border);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_border);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_border)) __PYX_ERR(0, 40, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)Py_True))) __PYX_ERR(0, 40, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)Py_True))) __PYX_ERR(0, 40, __pyx_L1_error);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 5, Py_None)) __PYX_ERR(0, 40, __pyx_L1_error);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None)) __PYX_ERR(0, 40, __pyx_L1_error);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_3run(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_3run = {"run", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_3run, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_3run(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_image = 0;
PyObject *__pyx_v_image_interp = 0;
PyObject *__pyx_v_magnification = 0;
double __pyx_v_ringRadius;
PyObject *__pyx_v_border = 0;
PyObject *__pyx_v_radialityPositivityConstraint = 0;
PyObject *__pyx_v_doIntensityWeighting = 0;
PyObject *__pyx_v_run_type = 0;
#if !CYTHON_METH_FASTCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("run (wrapper)", 0);
#if !CYTHON_METH_FASTCALL
#if CYTHON_ASSUME_SAFE_MACROS
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args);
if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 40, __pyx_L3_error)
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_image,&__pyx_n_s_image_interp,&__pyx_n_s_magnification,&__pyx_n_s_ringRadius,&__pyx_n_s_border,&__pyx_n_s_radialityPositivityConstraint,&__pyx_n_s_doIntensityWeighting,&__pyx_n_s_run_type,0};
PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
__pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self);
values[3] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_magnification);
values[5] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_border);
values[6] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
values[7] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
values[8] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
if (__pyx_kwds) {
Py_ssize_t kw_args;
switch (__pyx_nargs) {
case 9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("run", 0, 3, 9, 1); __PYX_ERR(0, 40, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image_interp)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("run", 0, 3, 9, 2); __PYX_ERR(0, 40, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_magnification);
if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ringRadius);
if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_border);
if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_radialityPositivityConstraint);
if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_doIntensityWeighting);
if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_run_type);
if (value) { values[8] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "run") < 0)) __PYX_ERR(0, 40, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
case 9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_image = values[1];
__pyx_v_image_interp = values[2];
__pyx_v_magnification = ((PyObject*)values[3]);
if (values[4]) {
__pyx_v_ringRadius = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_ringRadius == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
} else {
__pyx_v_ringRadius = ((double)((double)0.5));
}
__pyx_v_border = ((PyObject*)values[5]);
__pyx_v_radialityPositivityConstraint = values[6];
__pyx_v_doIntensityWeighting = values[7];
__pyx_v_run_type = values[8];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("run", 0, 3, 9, __pyx_nargs); __PYX_ERR(0, 40, __pyx_L3_error)
goto __pyx_L3_error;
__pyx_L3_error:;
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality.run", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_magnification), (&PyInt_Type), 0, "magnification", 1))) __PYX_ERR(0, 40, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_border), (&PyInt_Type), 0, "border", 1))) __PYX_ERR(0, 40, __pyx_L1_error)
__pyx_r = __pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_2run(__pyx_self, __pyx_v_self, __pyx_v_image, __pyx_v_image_interp, __pyx_v_magnification, __pyx_v_ringRadius, __pyx_v_border, __pyx_v_radialityPositivityConstraint, __pyx_v_doIntensityWeighting, __pyx_v_run_type);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_2run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_image, PyObject *__pyx_v_image_interp, PyObject *__pyx_v_magnification, double __pyx_v_ringRadius, PyObject *__pyx_v_border, PyObject *__pyx_v_radialityPositivityConstraint, PyObject *__pyx_v_doIntensityWeighting, PyObject *__pyx_v_run_type) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("run", 0);
__Pyx_INCREF(__pyx_v_image);
__Pyx_INCREF(__pyx_v_image_interp);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality.run", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_image);
__Pyx_XDECREF(__pyx_v_image_interp);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__25 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_image, __pyx_n_s_image_interp, __pyx_n_s_magnification, __pyx_n_s_ringRadius, __pyx_n_s_border, __pyx_n_s_radialityPositivityConstraint, __pyx_n_s_doIntensityWeighting, __pyx_n_s_run_type); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 40, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__25);
__Pyx_GIVEREF(__pyx_tuple__25);
/* … */
__pyx_t_10 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 40, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_magnification, __pyx_n_s_int) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_ringRadius, __pyx_n_s_float) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_border, __pyx_n_s_int) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_radialityPositivityConstraint, __pyx_n_s_bool) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_doIntensityWeighting, __pyx_n_s_bool) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
__pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_3run, 0, __pyx_n_s_Radiality_run, NULL, __pyx_n_s_nanopyx_liquid__le_radiality, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 40, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_11, sizeof(__pyx_defaults), 2)) __PYX_ERR(0, 40, __pyx_L1_error)
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_5)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_5))) __PYX_ERR(0, 40, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_5);
__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_11)->__pyx_arg_magnification = ((PyObject*)__pyx_int_5);
__Pyx_GIVEREF(__pyx_int_5);
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_0)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_0))) __PYX_ERR(0, 40, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_0);
__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_11)->__pyx_arg_border = ((PyObject*)__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_11, __pyx_pf_7nanopyx_6liquid_13_le_radiality___defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_11, __pyx_t_10);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_run_2, __pyx_t_11) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(9, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_nanopyx_liquid__le_radiality, __pyx_n_s_run_2, 40, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 40, __pyx_L1_error)
+041: image = check_image(image)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_check_image); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_image}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF_SET(__pyx_v_image, __pyx_t_1); __pyx_t_1 = 0;
+042: image_interp = check_image(image_interp)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_check_image); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_image_interp}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF_SET(__pyx_v_image_interp, __pyx_t_1); __pyx_t_1 = 0;
+043: return self._run(image, image_interp, magnification, ringRadius, border, radialityPositivityConstraint, doIntensityWeighting, run_type=run_type)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_run); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_ringRadius); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_image); __Pyx_GIVEREF(__pyx_v_image); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_image)) __PYX_ERR(0, 43, __pyx_L1_error); __Pyx_INCREF(__pyx_v_image_interp); __Pyx_GIVEREF(__pyx_v_image_interp); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_image_interp)) __PYX_ERR(0, 43, __pyx_L1_error); __Pyx_INCREF(__pyx_v_magnification); __Pyx_GIVEREF(__pyx_v_magnification); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_magnification)) __PYX_ERR(0, 43, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_2); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2)) __PYX_ERR(0, 43, __pyx_L1_error); __Pyx_INCREF(__pyx_v_border); __Pyx_GIVEREF(__pyx_v_border); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_border)) __PYX_ERR(0, 43, __pyx_L1_error); __Pyx_INCREF(__pyx_v_radialityPositivityConstraint); __Pyx_GIVEREF(__pyx_v_radialityPositivityConstraint); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_radialityPositivityConstraint)) __PYX_ERR(0, 43, __pyx_L1_error); __Pyx_INCREF(__pyx_v_doIntensityWeighting); __Pyx_GIVEREF(__pyx_v_doIntensityWeighting); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_doIntensityWeighting)) __PYX_ERR(0, 43, __pyx_L1_error); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_run_type, __pyx_v_run_type) < 0) __PYX_ERR(0, 43, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
044:
+045: def benchmark(self, image, image_interp, magnification: int = 5, ringRadius: float = 0.5, border: int = 0, radialityPositivityConstraint: bool = True, doIntensityWeighting: bool = True):
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_2__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_magnification);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_magnification);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_magnification)) __PYX_ERR(0, 45, __pyx_L1_error);
__Pyx_GIVEREF(__pyx_t_1);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_border);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_border);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_border)) __PYX_ERR(0, 45, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)Py_True))) __PYX_ERR(0, 45, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)Py_True))) __PYX_ERR(0, 45, __pyx_L1_error);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None)) __PYX_ERR(0, 45, __pyx_L1_error);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_5benchmark(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_5benchmark = {"benchmark", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_5benchmark, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_5benchmark(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_image = 0;
PyObject *__pyx_v_image_interp = 0;
PyObject *__pyx_v_magnification = 0;
double __pyx_v_ringRadius;
PyObject *__pyx_v_border = 0;
PyObject *__pyx_v_radialityPositivityConstraint = 0;
PyObject *__pyx_v_doIntensityWeighting = 0;
#if !CYTHON_METH_FASTCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("benchmark (wrapper)", 0);
#if !CYTHON_METH_FASTCALL
#if CYTHON_ASSUME_SAFE_MACROS
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args);
if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 45, __pyx_L3_error)
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_image,&__pyx_n_s_image_interp,&__pyx_n_s_magnification,&__pyx_n_s_ringRadius,&__pyx_n_s_border,&__pyx_n_s_radialityPositivityConstraint,&__pyx_n_s_doIntensityWeighting,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
__pyx_defaults1 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self);
values[3] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_magnification);
values[5] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_border);
values[6] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
values[7] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
if (__pyx_kwds) {
Py_ssize_t kw_args;
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("benchmark", 0, 3, 8, 1); __PYX_ERR(0, 45, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image_interp)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("benchmark", 0, 3, 8, 2); __PYX_ERR(0, 45, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_magnification);
if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ringRadius);
if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_border);
if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_radialityPositivityConstraint);
if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_doIntensityWeighting);
if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "benchmark") < 0)) __PYX_ERR(0, 45, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_image = values[1];
__pyx_v_image_interp = values[2];
__pyx_v_magnification = ((PyObject*)values[3]);
if (values[4]) {
__pyx_v_ringRadius = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_ringRadius == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L3_error)
} else {
__pyx_v_ringRadius = ((double)((double)0.5));
}
__pyx_v_border = ((PyObject*)values[5]);
__pyx_v_radialityPositivityConstraint = values[6];
__pyx_v_doIntensityWeighting = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("benchmark", 0, 3, 8, __pyx_nargs); __PYX_ERR(0, 45, __pyx_L3_error)
goto __pyx_L3_error;
__pyx_L3_error:;
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality.benchmark", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_magnification), (&PyInt_Type), 0, "magnification", 1))) __PYX_ERR(0, 45, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_border), (&PyInt_Type), 0, "border", 1))) __PYX_ERR(0, 45, __pyx_L1_error)
__pyx_r = __pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_4benchmark(__pyx_self, __pyx_v_self, __pyx_v_image, __pyx_v_image_interp, __pyx_v_magnification, __pyx_v_ringRadius, __pyx_v_border, __pyx_v_radialityPositivityConstraint, __pyx_v_doIntensityWeighting);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_4benchmark(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_image, PyObject *__pyx_v_image_interp, PyObject *__pyx_v_magnification, double __pyx_v_ringRadius, PyObject *__pyx_v_border, PyObject *__pyx_v_radialityPositivityConstraint, PyObject *__pyx_v_doIntensityWeighting) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("benchmark", 0);
__Pyx_INCREF(__pyx_v_image);
__Pyx_INCREF(__pyx_v_image_interp);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality.benchmark", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_image);
__Pyx_XDECREF(__pyx_v_image_interp);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__27 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_image, __pyx_n_s_image_interp, __pyx_n_s_magnification, __pyx_n_s_ringRadius, __pyx_n_s_border, __pyx_n_s_radialityPositivityConstraint, __pyx_n_s_doIntensityWeighting); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 45, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__27);
__Pyx_GIVEREF(__pyx_tuple__27);
/* … */
__pyx_t_11 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 45, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_magnification, __pyx_n_s_int) < 0) __PYX_ERR(0, 45, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_ringRadius, __pyx_n_s_float) < 0) __PYX_ERR(0, 45, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_border, __pyx_n_s_int) < 0) __PYX_ERR(0, 45, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_radialityPositivityConstraint, __pyx_n_s_bool) < 0) __PYX_ERR(0, 45, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_doIntensityWeighting, __pyx_n_s_bool) < 0) __PYX_ERR(0, 45, __pyx_L1_error)
__pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_5benchmark, 0, __pyx_n_s_Radiality_benchmark, NULL, __pyx_n_s_nanopyx_liquid__le_radiality, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 45, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_INCREF(__pyx_t_10);
PyList_Append(__pyx_t_7, __pyx_t_10);
__Pyx_GIVEREF(__pyx_t_10);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_10, sizeof(__pyx_defaults1), 2)) __PYX_ERR(0, 45, __pyx_L1_error)
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_5)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_5))) __PYX_ERR(0, 45, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_5);
__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_t_10)->__pyx_arg_magnification = ((PyObject*)__pyx_int_5);
__Pyx_GIVEREF(__pyx_int_5);
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_0)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_0))) __PYX_ERR(0, 45, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_0);
__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_t_10)->__pyx_arg_border = ((PyObject*)__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_10, __pyx_pf_7nanopyx_6liquid_13_le_radiality_2__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_10, __pyx_t_11);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_benchmark, __pyx_t_10) < 0) __PYX_ERR(0, 45, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_nanopyx_liquid__le_radiality, __pyx_n_s_benchmark, 45, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 45, __pyx_L1_error)
+046: image = check_image(image)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_check_image); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_image}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF_SET(__pyx_v_image, __pyx_t_1); __pyx_t_1 = 0;
+047: image_interp = check_image(image_interp)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_check_image); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_image_interp}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF_SET(__pyx_v_image_interp, __pyx_t_1); __pyx_t_1 = 0;
+048: return super().benchmark(image, image_interp, magnification, ringRadius, border, radialityPositivityConstraint, doIntensityWeighting)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_CyFunction_GetClassObj(__pyx_self); if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 48, __pyx_L1_error) } __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error); __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)) __PYX_ERR(0, 48, __pyx_L1_error); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_benchmark); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_ringRadius); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; __pyx_t_4 = 0; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #endif { PyObject *__pyx_callargs[8] = {__pyx_t_5, __pyx_v_image, __pyx_v_image_interp, __pyx_v_magnification, __pyx_t_2, __pyx_v_border, __pyx_v_radialityPositivityConstraint, __pyx_v_doIntensityWeighting}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 7+__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
049:
050: # tag-start: _le_radiality.Radiality._run_unthreaded
+051: def _run_unthreaded(self, float[:,:,:] image, float[:,:,:] image_interp, magnification: int = 5, ringRadius: float = 0.5, border: int = 0, radialityPositivityConstraint: bool = True, doIntensityWeighting: bool = True):
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_4__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_magnification);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_magnification);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_magnification)) __PYX_ERR(0, 51, __pyx_L1_error);
__Pyx_GIVEREF(__pyx_t_1);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_border);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_border);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_border)) __PYX_ERR(0, 51, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)Py_True))) __PYX_ERR(0, 51, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)Py_True))) __PYX_ERR(0, 51, __pyx_L1_error);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None)) __PYX_ERR(0, 51, __pyx_L1_error);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_7_run_unthreaded(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_7_run_unthreaded = {"_run_unthreaded", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_7_run_unthreaded, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_7_run_unthreaded(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
CYTHON_UNUSED PyObject *__pyx_v_self = 0;
__Pyx_memviewslice __pyx_v_image = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_image_interp = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_magnification = 0;
double __pyx_v_ringRadius;
PyObject *__pyx_v_border = 0;
PyObject *__pyx_v_radialityPositivityConstraint = 0;
PyObject *__pyx_v_doIntensityWeighting = 0;
#if !CYTHON_METH_FASTCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_unthreaded (wrapper)", 0);
#if !CYTHON_METH_FASTCALL
#if CYTHON_ASSUME_SAFE_MACROS
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args);
if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 51, __pyx_L3_error)
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_image,&__pyx_n_s_image_interp,&__pyx_n_s_magnification,&__pyx_n_s_ringRadius,&__pyx_n_s_border,&__pyx_n_s_radialityPositivityConstraint,&__pyx_n_s_doIntensityWeighting,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
__pyx_defaults2 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self);
values[3] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_magnification);
values[5] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_border);
values[6] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
values[7] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
if (__pyx_kwds) {
Py_ssize_t kw_args;
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_unthreaded", 0, 3, 8, 1); __PYX_ERR(0, 51, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image_interp)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_unthreaded", 0, 3, 8, 2); __PYX_ERR(0, 51, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_magnification);
if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ringRadius);
if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_border);
if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_radialityPositivityConstraint);
if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_doIntensityWeighting);
if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_run_unthreaded") < 0)) __PYX_ERR(0, 51, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_image = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_image.memview)) __PYX_ERR(0, 51, __pyx_L3_error)
__pyx_v_image_interp = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_image_interp.memview)) __PYX_ERR(0, 51, __pyx_L3_error)
__pyx_v_magnification = ((PyObject*)values[3]);
if (values[4]) {
__pyx_v_ringRadius = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_ringRadius == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
} else {
__pyx_v_ringRadius = ((double)((double)0.5));
}
__pyx_v_border = ((PyObject*)values[5]);
__pyx_v_radialityPositivityConstraint = values[6];
__pyx_v_doIntensityWeighting = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_run_unthreaded", 0, 3, 8, __pyx_nargs); __PYX_ERR(0, 51, __pyx_L3_error)
goto __pyx_L3_error;
__pyx_L3_error:;
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image_interp, 1);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_unthreaded", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_magnification), (&PyInt_Type), 0, "magnification", 1))) __PYX_ERR(0, 51, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_border), (&PyInt_Type), 0, "border", 1))) __PYX_ERR(0, 51, __pyx_L1_error)
__pyx_r = __pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_6_run_unthreaded(__pyx_self, __pyx_v_self, __pyx_v_image, __pyx_v_image_interp, __pyx_v_magnification, __pyx_v_ringRadius, __pyx_v_border, __pyx_v_radialityPositivityConstraint, __pyx_v_doIntensityWeighting);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image_interp, 1);
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_6_run_unthreaded(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, __Pyx_memviewslice __pyx_v_image, __Pyx_memviewslice __pyx_v_image_interp, PyObject *__pyx_v_magnification, double __pyx_v_ringRadius, PyObject *__pyx_v_border, PyObject *__pyx_v_radialityPositivityConstraint, PyObject *__pyx_v_doIntensityWeighting) {
int __pyx_v__magnification;
int __pyx_v__border;
float __pyx_v__ringRadius;
int __pyx_v__doIntensityWeighting;
int __pyx_v__radialityPositivityConstraint;
int __pyx_v_nRingCoordinates;
float __pyx_v_angleStep;
float __pyx_v_xRingCoordinates[12];
float __pyx_v_yRingCoordinates[12];
int __pyx_v_angleIter;
int __pyx_v_nFrames;
int __pyx_v_h;
int __pyx_v_w;
__Pyx_memviewslice __pyx_v_imGx = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_imGy = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_imRad = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_f;
int __pyx_v_j;
int __pyx_v_i;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_unthreaded", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_unthreaded", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGx, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGy, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imRad, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__29 = PyTuple_Pack(27, __pyx_n_s_self, __pyx_n_s_image, __pyx_n_s_image_interp, __pyx_n_s_magnification, __pyx_n_s_ringRadius, __pyx_n_s_border, __pyx_n_s_radialityPositivityConstraint, __pyx_n_s_doIntensityWeighting, __pyx_n_s_magnification_2, __pyx_n_s_border_2, __pyx_n_s_ringRadius_2, __pyx_n_s_doIntensityWeighting_2, __pyx_n_s_radialityPositivityConstraint_2, __pyx_n_s_nRingCoordinates, __pyx_n_s_angleStep, __pyx_n_s_xRingCoordinates, __pyx_n_s_yRingCoordinates, __pyx_n_s_angleIter, __pyx_n_s_nFrames, __pyx_n_s_h, __pyx_n_s_w, __pyx_n_s_imGx, __pyx_n_s_imGy, __pyx_n_s_imRad, __pyx_n_s_f, __pyx_n_s_j, __pyx_n_s_i); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 51, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__29);
__Pyx_GIVEREF(__pyx_tuple__29);
/* … */
__pyx_t_10 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 51, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_magnification, __pyx_n_s_int) < 0) __PYX_ERR(0, 51, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_ringRadius, __pyx_n_s_float) < 0) __PYX_ERR(0, 51, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_border, __pyx_n_s_int) < 0) __PYX_ERR(0, 51, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_radialityPositivityConstraint, __pyx_n_s_bool) < 0) __PYX_ERR(0, 51, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_doIntensityWeighting, __pyx_n_s_bool) < 0) __PYX_ERR(0, 51, __pyx_L1_error)
__pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_7_run_unthreaded, 0, __pyx_n_s_Radiality__run_unthreaded, NULL, __pyx_n_s_nanopyx_liquid__le_radiality, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 51, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_11, sizeof(__pyx_defaults2), 2)) __PYX_ERR(0, 51, __pyx_L1_error)
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_5)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_5))) __PYX_ERR(0, 51, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_5);
__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_11)->__pyx_arg_magnification = ((PyObject*)__pyx_int_5);
__Pyx_GIVEREF(__pyx_int_5);
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_0)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_0))) __PYX_ERR(0, 51, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_0);
__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_11)->__pyx_arg_border = ((PyObject*)__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_11, __pyx_pf_7nanopyx_6liquid_13_le_radiality_4__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_11, __pyx_t_10);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_run_unthreaded, __pyx_t_11) < 0) __PYX_ERR(0, 51, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_nanopyx_liquid__le_radiality, __pyx_n_s_run_unthreaded, 51, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 51, __pyx_L1_error)
052:
+053: cdef int _magnification = magnification
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_magnification); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 53, __pyx_L1_error) __pyx_v__magnification = __pyx_t_1;
+054: cdef int _border = border
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_border); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 54, __pyx_L1_error) __pyx_v__border = __pyx_t_1;
+055: cdef float _ringRadius = ringRadius * magnification
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_ringRadius); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_magnification); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v__ringRadius = __pyx_t_4;
+056: cdef int _doIntensityWeighting = doIntensityWeighting
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_doIntensityWeighting); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 56, __pyx_L1_error) __pyx_v__doIntensityWeighting = __pyx_t_1;
+057: cdef int _radialityPositivityConstraint = radialityPositivityConstraint
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_radialityPositivityConstraint); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 57, __pyx_L1_error) __pyx_v__radialityPositivityConstraint = __pyx_t_1;
+058: cdef int nRingCoordinates = 12
__pyx_v_nRingCoordinates = 12;
+059: cdef float angleStep = (pi * 2.) / nRingCoordinates
__pyx_v_angleStep = ((M_PI * 2.) / ((double)__pyx_v_nRingCoordinates));
060: cdef float[12] xRingCoordinates, yRingCoordinates
061:
+062: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
+063: for angleIter in range(nRingCoordinates):
__pyx_t_1 = __pyx_v_nRingCoordinates;
__pyx_t_5 = __pyx_t_1;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_angleIter = __pyx_t_6;
+064: xRingCoordinates[angleIter] = cos(angleStep * angleIter) * _ringRadius
(__pyx_v_xRingCoordinates[__pyx_v_angleIter]) = (cos((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
+065: yRingCoordinates[angleIter] = sin(angleStep * angleIter) * _ringRadius
(__pyx_v_yRingCoordinates[__pyx_v_angleIter]) = (sin((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
}
}
066:
+067: cdef int nFrames = image.shape[0]
__pyx_v_nFrames = (__pyx_v_image.shape[0]);
+068: cdef int h = image.shape[1]
__pyx_v_h = (__pyx_v_image.shape[1]);
+069: cdef int w = image.shape[2]
__pyx_v_w = (__pyx_v_image.shape[2]);
070:
071:
+072: cdef float [:,:,:] imGx = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_image, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_2}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imGx = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+073: cdef float [:,:,:] imGy = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_image, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imGy = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+074: cdef float [:,:,:] imRad = np.zeros((nFrames, h*magnification, w*magnification), dtype=np.float32)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nFrames); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_h); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_v_magnification); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_w); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PyNumber_Multiply(__pyx_t_7, __pyx_v_magnification); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3)) __PYX_ERR(0, 74, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8)) __PYX_ERR(0, 74, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_10); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_10)) __PYX_ERR(0, 74, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_8 = 0; __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_7); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7)) __PYX_ERR(0, 74, __pyx_L1_error); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_float32); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imRad = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
075:
076: cdef int f, j, i
+077: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L10;
}
__pyx_L10:;
}
}
+078: for f in range(nFrames):
__pyx_t_1 = __pyx_v_nFrames;
__pyx_t_5 = __pyx_t_1;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_f = __pyx_t_6;
+079: _c_gradient_radiality(&image[f,0,0], &imGx[f,0,0], &imGy[f,0,0], h, w)
__pyx_t_11 = __pyx_v_f;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_f;
__pyx_t_18 = 0;
__pyx_t_19 = 0;
_c_gradient_radiality((&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_image.data + __pyx_t_11 * __pyx_v_image.strides[0]) ) + __pyx_t_12 * __pyx_v_image.strides[1]) ) + __pyx_t_13 * __pyx_v_image.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_14 * __pyx_v_imGx.strides[0]) ) + __pyx_t_15 * __pyx_v_imGx.strides[1]) ) + __pyx_t_16 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_17 * __pyx_v_imGy.strides[0]) ) + __pyx_t_18 * __pyx_v_imGy.strides[1]) ) + __pyx_t_19 * __pyx_v_imGy.strides[2]) )))), __pyx_v_h, __pyx_v_w);
+080: for j in range((1 + _border) * _magnification, (h - 1 - _border) * _magnification):
__pyx_t_20 = (((__pyx_v_h - 1) - __pyx_v__border) * __pyx_v__magnification);
__pyx_t_21 = __pyx_t_20;
for (__pyx_t_22 = ((1 + __pyx_v__border) * __pyx_v__magnification); __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) {
__pyx_v_j = __pyx_t_22;
+081: for i in range((1 + _border) * _magnification, (w - 1 - _border) * _magnification):
__pyx_t_23 = (((__pyx_v_w - 1) - __pyx_v__border) * __pyx_v__magnification);
__pyx_t_24 = __pyx_t_23;
for (__pyx_t_25 = ((1 + __pyx_v__border) * __pyx_v__magnification); __pyx_t_25 < __pyx_t_24; __pyx_t_25+=1) {
__pyx_v_i = __pyx_t_25;
+082: if _doIntensityWeighting:
__pyx_t_26 = (__pyx_v__doIntensityWeighting != 0);
if (__pyx_t_26) {
/* … */
goto __pyx_L17;
}
+083: imRad[f,j,i] = _c_calculate_radiality_per_subpixel(i, j, &imGx[f,0,0], &imGy[f,0,0], xRingCoordinates, yRingCoordinates, _magnification, _ringRadius, nRingCoordinates, _radialityPositivityConstraint, h, w) * image_interp[f, j, i]
__pyx_t_19 = __pyx_v_f;
__pyx_t_18 = 0;
__pyx_t_17 = 0;
__pyx_t_16 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_14 = 0;
__pyx_t_13 = __pyx_v_f;
__pyx_t_12 = __pyx_v_j;
__pyx_t_11 = __pyx_v_i;
__pyx_t_27 = __pyx_v_f;
__pyx_t_28 = __pyx_v_j;
__pyx_t_29 = __pyx_v_i;
*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imRad.data + __pyx_t_27 * __pyx_v_imRad.strides[0]) ) + __pyx_t_28 * __pyx_v_imRad.strides[1]) ) + __pyx_t_29 * __pyx_v_imRad.strides[2]) )) = (_c_calculate_radiality_per_subpixel(__pyx_v_i, __pyx_v_j, (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_19 * __pyx_v_imGx.strides[0]) ) + __pyx_t_18 * __pyx_v_imGx.strides[1]) ) + __pyx_t_17 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_16 * __pyx_v_imGy.strides[0]) ) + __pyx_t_15 * __pyx_v_imGy.strides[1]) ) + __pyx_t_14 * __pyx_v_imGy.strides[2]) )))), __pyx_v_xRingCoordinates, __pyx_v_yRingCoordinates, __pyx_v__magnification, __pyx_v__ringRadius, __pyx_v_nRingCoordinates, __pyx_v__radialityPositivityConstraint, __pyx_v_h, __pyx_v_w) * (*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_image_interp.data + __pyx_t_13 * __pyx_v_image_interp.strides[0]) ) + __pyx_t_12 * __pyx_v_image_interp.strides[1]) ) + __pyx_t_11 * __pyx_v_image_interp.strides[2]) ))));
084: else:
+085: imRad[f,j,i] = _c_calculate_radiality_per_subpixel(i, j, &imGx[f,0,0], &imGy[f,0,0], xRingCoordinates, yRingCoordinates, _magnification, _ringRadius, nRingCoordinates, _radialityPositivityConstraint, h, w)
/*else*/ {
__pyx_t_11 = __pyx_v_f;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_f;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_i;
*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imRad.data + __pyx_t_17 * __pyx_v_imRad.strides[0]) ) + __pyx_t_18 * __pyx_v_imRad.strides[1]) ) + __pyx_t_19 * __pyx_v_imRad.strides[2]) )) = _c_calculate_radiality_per_subpixel(__pyx_v_i, __pyx_v_j, (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_11 * __pyx_v_imGx.strides[0]) ) + __pyx_t_12 * __pyx_v_imGx.strides[1]) ) + __pyx_t_13 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_14 * __pyx_v_imGy.strides[0]) ) + __pyx_t_15 * __pyx_v_imGy.strides[1]) ) + __pyx_t_16 * __pyx_v_imGy.strides[2]) )))), __pyx_v_xRingCoordinates, __pyx_v_yRingCoordinates, __pyx_v__magnification, __pyx_v__ringRadius, __pyx_v_nRingCoordinates, __pyx_v__radialityPositivityConstraint, __pyx_v_h, __pyx_v_w);
}
__pyx_L17:;
}
}
}
}
086:
+087: return np.asarray(imRad)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_asarray); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_imRad, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
088: # tag-end
089:
090: # tag-copy: _le_radiality.Radiality._run_unthreaded; replace("_run_unthreaded", "_run_threaded"); replace("range((1 + _border) * _magnification, (h - 1 - _border) * _magnification)", "prange((1 + _border) * _magnification, (h - 1 - _border) * _magnification)")
+091: def _run_threaded(self, float[:,:,:] image, float[:,:,:] image_interp, magnification: int = 5, ringRadius: float = 0.5, border: int = 0, radialityPositivityConstraint: bool = True, doIntensityWeighting: bool = True):
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_6__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_magnification);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_magnification);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_magnification)) __PYX_ERR(0, 91, __pyx_L1_error);
__Pyx_GIVEREF(__pyx_t_1);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_border);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_border);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_border)) __PYX_ERR(0, 91, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)Py_True))) __PYX_ERR(0, 91, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)Py_True))) __PYX_ERR(0, 91, __pyx_L1_error);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None)) __PYX_ERR(0, 91, __pyx_L1_error);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_9_run_threaded(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_9_run_threaded = {"_run_threaded", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_9_run_threaded, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_9_run_threaded(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
CYTHON_UNUSED PyObject *__pyx_v_self = 0;
__Pyx_memviewslice __pyx_v_image = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_image_interp = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_magnification = 0;
double __pyx_v_ringRadius;
PyObject *__pyx_v_border = 0;
PyObject *__pyx_v_radialityPositivityConstraint = 0;
PyObject *__pyx_v_doIntensityWeighting = 0;
#if !CYTHON_METH_FASTCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_threaded (wrapper)", 0);
#if !CYTHON_METH_FASTCALL
#if CYTHON_ASSUME_SAFE_MACROS
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args);
if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 91, __pyx_L3_error)
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_image,&__pyx_n_s_image_interp,&__pyx_n_s_magnification,&__pyx_n_s_ringRadius,&__pyx_n_s_border,&__pyx_n_s_radialityPositivityConstraint,&__pyx_n_s_doIntensityWeighting,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
__pyx_defaults3 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self);
values[3] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_magnification);
values[5] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_border);
values[6] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
values[7] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
if (__pyx_kwds) {
Py_ssize_t kw_args;
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 91, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 91, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_threaded", 0, 3, 8, 1); __PYX_ERR(0, 91, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image_interp)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 91, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_threaded", 0, 3, 8, 2); __PYX_ERR(0, 91, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_magnification);
if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 91, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ringRadius);
if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 91, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_border);
if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 91, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_radialityPositivityConstraint);
if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 91, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_doIntensityWeighting);
if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 91, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_run_threaded") < 0)) __PYX_ERR(0, 91, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_image = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_image.memview)) __PYX_ERR(0, 91, __pyx_L3_error)
__pyx_v_image_interp = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_image_interp.memview)) __PYX_ERR(0, 91, __pyx_L3_error)
__pyx_v_magnification = ((PyObject*)values[3]);
if (values[4]) {
__pyx_v_ringRadius = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_ringRadius == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 91, __pyx_L3_error)
} else {
__pyx_v_ringRadius = ((double)((double)0.5));
}
__pyx_v_border = ((PyObject*)values[5]);
__pyx_v_radialityPositivityConstraint = values[6];
__pyx_v_doIntensityWeighting = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_run_threaded", 0, 3, 8, __pyx_nargs); __PYX_ERR(0, 91, __pyx_L3_error)
goto __pyx_L3_error;
__pyx_L3_error:;
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image_interp, 1);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_threaded", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_magnification), (&PyInt_Type), 0, "magnification", 1))) __PYX_ERR(0, 91, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_border), (&PyInt_Type), 0, "border", 1))) __PYX_ERR(0, 91, __pyx_L1_error)
__pyx_r = __pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_8_run_threaded(__pyx_self, __pyx_v_self, __pyx_v_image, __pyx_v_image_interp, __pyx_v_magnification, __pyx_v_ringRadius, __pyx_v_border, __pyx_v_radialityPositivityConstraint, __pyx_v_doIntensityWeighting);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image_interp, 1);
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_8_run_threaded(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, __Pyx_memviewslice __pyx_v_image, __Pyx_memviewslice __pyx_v_image_interp, PyObject *__pyx_v_magnification, double __pyx_v_ringRadius, PyObject *__pyx_v_border, PyObject *__pyx_v_radialityPositivityConstraint, PyObject *__pyx_v_doIntensityWeighting) {
int __pyx_v__magnification;
int __pyx_v__border;
float __pyx_v__ringRadius;
int __pyx_v__doIntensityWeighting;
int __pyx_v__radialityPositivityConstraint;
int __pyx_v_nRingCoordinates;
float __pyx_v_angleStep;
float __pyx_v_xRingCoordinates[12];
float __pyx_v_yRingCoordinates[12];
int __pyx_v_angleIter;
int __pyx_v_nFrames;
int __pyx_v_h;
int __pyx_v_w;
__Pyx_memviewslice __pyx_v_imGx = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_imGy = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_imRad = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_f;
int __pyx_v_j;
int __pyx_v_i;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_threaded", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_threaded", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGx, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGy, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imRad, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_11 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_magnification, __pyx_n_s_int) < 0) __PYX_ERR(0, 91, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_ringRadius, __pyx_n_s_float) < 0) __PYX_ERR(0, 91, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_border, __pyx_n_s_int) < 0) __PYX_ERR(0, 91, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_radialityPositivityConstraint, __pyx_n_s_bool) < 0) __PYX_ERR(0, 91, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_doIntensityWeighting, __pyx_n_s_bool) < 0) __PYX_ERR(0, 91, __pyx_L1_error)
__pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_9_run_threaded, 0, __pyx_n_s_Radiality__run_threaded, NULL, __pyx_n_s_nanopyx_liquid__le_radiality, __pyx_d, ((PyObject *)__pyx_codeobj__31)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_10, sizeof(__pyx_defaults3), 2)) __PYX_ERR(0, 91, __pyx_L1_error)
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_5)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_5))) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_5);
__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_t_10)->__pyx_arg_magnification = ((PyObject*)__pyx_int_5);
__Pyx_GIVEREF(__pyx_int_5);
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_0)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_0))) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_0);
__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_t_10)->__pyx_arg_border = ((PyObject*)__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_10, __pyx_pf_7nanopyx_6liquid_13_le_radiality_6__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_10, __pyx_t_11);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_run_threaded, __pyx_t_10) < 0) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
/* … */
__pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_nanopyx_liquid__le_radiality, __pyx_n_s_run_threaded, 91, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__31)) __PYX_ERR(0, 91, __pyx_L1_error)
092:
+093: cdef int _magnification = magnification
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_magnification); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 93, __pyx_L1_error) __pyx_v__magnification = __pyx_t_1;
+094: cdef int _border = border
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_border); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 94, __pyx_L1_error) __pyx_v__border = __pyx_t_1;
+095: cdef float _ringRadius = ringRadius * magnification
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_ringRadius); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_magnification); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v__ringRadius = __pyx_t_4;
+096: cdef int _doIntensityWeighting = doIntensityWeighting
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_doIntensityWeighting); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 96, __pyx_L1_error) __pyx_v__doIntensityWeighting = __pyx_t_1;
+097: cdef int _radialityPositivityConstraint = radialityPositivityConstraint
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_radialityPositivityConstraint); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 97, __pyx_L1_error) __pyx_v__radialityPositivityConstraint = __pyx_t_1;
+098: cdef int nRingCoordinates = 12
__pyx_v_nRingCoordinates = 12;
+099: cdef float angleStep = (pi * 2.) / nRingCoordinates
__pyx_v_angleStep = ((M_PI * 2.) / ((double)__pyx_v_nRingCoordinates));
100: cdef float[12] xRingCoordinates, yRingCoordinates
101:
+102: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
+103: for angleIter in range(nRingCoordinates):
__pyx_t_1 = __pyx_v_nRingCoordinates;
__pyx_t_5 = __pyx_t_1;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_angleIter = __pyx_t_6;
+104: xRingCoordinates[angleIter] = cos(angleStep * angleIter) * _ringRadius
(__pyx_v_xRingCoordinates[__pyx_v_angleIter]) = (cos((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
+105: yRingCoordinates[angleIter] = sin(angleStep * angleIter) * _ringRadius
(__pyx_v_yRingCoordinates[__pyx_v_angleIter]) = (sin((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
}
}
106:
+107: cdef int nFrames = image.shape[0]
__pyx_v_nFrames = (__pyx_v_image.shape[0]);
+108: cdef int h = image.shape[1]
__pyx_v_h = (__pyx_v_image.shape[1]);
+109: cdef int w = image.shape[2]
__pyx_v_w = (__pyx_v_image.shape[2]);
110:
+111: cdef float [:,:,:] imGx = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_image, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_2}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imGx = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+112: cdef float [:,:,:] imGy = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_image, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imGy = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+113: cdef float [:,:,:] imRad = np.zeros((nFrames, h*magnification, w*magnification), dtype=np.float32)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nFrames); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_h); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_v_magnification); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_w); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PyNumber_Multiply(__pyx_t_7, __pyx_v_magnification); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3)) __PYX_ERR(0, 113, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8)) __PYX_ERR(0, 113, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_10); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_10)) __PYX_ERR(0, 113, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_8 = 0; __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_7); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7)) __PYX_ERR(0, 113, __pyx_L1_error); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_float32); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imRad = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
114:
115: cdef int f, j, i
+116: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L10;
}
__pyx_L10:;
}
}
+117: for f in range(nFrames):
__pyx_t_1 = __pyx_v_nFrames;
__pyx_t_5 = __pyx_t_1;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_f = __pyx_t_6;
+118: _c_gradient_radiality(&image[f,0,0], &imGx[f,0,0], &imGy[f,0,0], h, w)
__pyx_t_11 = __pyx_v_f;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_f;
__pyx_t_18 = 0;
__pyx_t_19 = 0;
_c_gradient_radiality((&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_image.data + __pyx_t_11 * __pyx_v_image.strides[0]) ) + __pyx_t_12 * __pyx_v_image.strides[1]) ) + __pyx_t_13 * __pyx_v_image.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_14 * __pyx_v_imGx.strides[0]) ) + __pyx_t_15 * __pyx_v_imGx.strides[1]) ) + __pyx_t_16 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_17 * __pyx_v_imGy.strides[0]) ) + __pyx_t_18 * __pyx_v_imGy.strides[1]) ) + __pyx_t_19 * __pyx_v_imGy.strides[2]) )))), __pyx_v_h, __pyx_v_w);
+119: for j in prange((1 + _border) * _magnification, (h - 1 - _border) * _magnification):
__pyx_t_20 = ((1 + __pyx_v__border) * __pyx_v__magnification);
__pyx_t_21 = (((__pyx_v_h - 1) - __pyx_v__border) * __pyx_v__magnification);
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_23 = (__pyx_t_21 - __pyx_t_20 + 1 - 1/abs(1)) / 1;
if (__pyx_t_23 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_i) firstprivate(__pyx_v_j) lastprivate(__pyx_v_j)
#endif /* _OPENMP */
for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_23; __pyx_t_22++){
{
__pyx_v_j = (int)(__pyx_t_20 + 1 * __pyx_t_22);
/* Initialize private variables to invalid values */
__pyx_v_i = ((int)0xbad0bad0);
+120: for i in range((1 + _border) * _magnification, (w - 1 - _border) * _magnification):
__pyx_t_24 = (((__pyx_v_w - 1) - __pyx_v__border) * __pyx_v__magnification);
__pyx_t_25 = __pyx_t_24;
for (__pyx_t_26 = ((1 + __pyx_v__border) * __pyx_v__magnification); __pyx_t_26 < __pyx_t_25; __pyx_t_26+=1) {
__pyx_v_i = __pyx_t_26;
+121: if _doIntensityWeighting:
__pyx_t_27 = (__pyx_v__doIntensityWeighting != 0);
if (__pyx_t_27) {
/* … */
goto __pyx_L19;
}
+122: imRad[f,j,i] = _c_calculate_radiality_per_subpixel(i, j, &imGx[f,0,0], &imGy[f,0,0], xRingCoordinates, yRingCoordinates, _magnification, _ringRadius, nRingCoordinates, _radialityPositivityConstraint, h, w) * image_interp[f, j, i]
__pyx_t_19 = __pyx_v_f;
__pyx_t_18 = 0;
__pyx_t_17 = 0;
__pyx_t_16 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_14 = 0;
__pyx_t_13 = __pyx_v_f;
__pyx_t_12 = __pyx_v_j;
__pyx_t_11 = __pyx_v_i;
__pyx_t_28 = __pyx_v_f;
__pyx_t_29 = __pyx_v_j;
__pyx_t_30 = __pyx_v_i;
*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imRad.data + __pyx_t_28 * __pyx_v_imRad.strides[0]) ) + __pyx_t_29 * __pyx_v_imRad.strides[1]) ) + __pyx_t_30 * __pyx_v_imRad.strides[2]) )) = (_c_calculate_radiality_per_subpixel(__pyx_v_i, __pyx_v_j, (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_19 * __pyx_v_imGx.strides[0]) ) + __pyx_t_18 * __pyx_v_imGx.strides[1]) ) + __pyx_t_17 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_16 * __pyx_v_imGy.strides[0]) ) + __pyx_t_15 * __pyx_v_imGy.strides[1]) ) + __pyx_t_14 * __pyx_v_imGy.strides[2]) )))), __pyx_v_xRingCoordinates, __pyx_v_yRingCoordinates, __pyx_v__magnification, __pyx_v__ringRadius, __pyx_v_nRingCoordinates, __pyx_v__radialityPositivityConstraint, __pyx_v_h, __pyx_v_w) * (*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_image_interp.data + __pyx_t_13 * __pyx_v_image_interp.strides[0]) ) + __pyx_t_12 * __pyx_v_image_interp.strides[1]) ) + __pyx_t_11 * __pyx_v_image_interp.strides[2]) ))));
123: else:
+124: imRad[f,j,i] = _c_calculate_radiality_per_subpixel(i, j, &imGx[f,0,0], &imGy[f,0,0], xRingCoordinates, yRingCoordinates, _magnification, _ringRadius, nRingCoordinates, _radialityPositivityConstraint, h, w)
/*else*/ {
__pyx_t_11 = __pyx_v_f;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_f;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_i;
*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imRad.data + __pyx_t_17 * __pyx_v_imRad.strides[0]) ) + __pyx_t_18 * __pyx_v_imRad.strides[1]) ) + __pyx_t_19 * __pyx_v_imRad.strides[2]) )) = _c_calculate_radiality_per_subpixel(__pyx_v_i, __pyx_v_j, (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_11 * __pyx_v_imGx.strides[0]) ) + __pyx_t_12 * __pyx_v_imGx.strides[1]) ) + __pyx_t_13 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_14 * __pyx_v_imGy.strides[0]) ) + __pyx_t_15 * __pyx_v_imGy.strides[1]) ) + __pyx_t_16 * __pyx_v_imGy.strides[2]) )))), __pyx_v_xRingCoordinates, __pyx_v_yRingCoordinates, __pyx_v__magnification, __pyx_v__ringRadius, __pyx_v_nRingCoordinates, __pyx_v__radialityPositivityConstraint, __pyx_v_h, __pyx_v_w);
}
__pyx_L19:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
}
125:
+126: return np.asarray(imRad)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_asarray); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_imRad, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
127: # tag-end
128:
+129: def _run_threaded_static(self, float[:,:,:] image, float[:,:,:] image_interp, magnification: int = 5, ringRadius: float = 0.5, border: int = 0, radialityPositivityConstraint: bool = True, doIntensityWeighting: bool = True):
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_8__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 129, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 129, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self)->__pyx_arg_magnification);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self)->__pyx_arg_magnification);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self)->__pyx_arg_magnification)) __PYX_ERR(0, 129, __pyx_L1_error);
__Pyx_GIVEREF(__pyx_t_1);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(0, 129, __pyx_L1_error);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self)->__pyx_arg_border);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self)->__pyx_arg_border);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self)->__pyx_arg_border)) __PYX_ERR(0, 129, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)Py_True))) __PYX_ERR(0, 129, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)Py_True))) __PYX_ERR(0, 129, __pyx_L1_error);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 129, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(0, 129, __pyx_L1_error);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None)) __PYX_ERR(0, 129, __pyx_L1_error);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_11_run_threaded_static(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_11_run_threaded_static = {"_run_threaded_static", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_11_run_threaded_static, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_11_run_threaded_static(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
CYTHON_UNUSED PyObject *__pyx_v_self = 0;
__Pyx_memviewslice __pyx_v_image = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_image_interp = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_magnification = 0;
double __pyx_v_ringRadius;
PyObject *__pyx_v_border = 0;
PyObject *__pyx_v_radialityPositivityConstraint = 0;
PyObject *__pyx_v_doIntensityWeighting = 0;
#if !CYTHON_METH_FASTCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_threaded_static (wrapper)", 0);
#if !CYTHON_METH_FASTCALL
#if CYTHON_ASSUME_SAFE_MACROS
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args);
if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 129, __pyx_L3_error)
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_image,&__pyx_n_s_image_interp,&__pyx_n_s_magnification,&__pyx_n_s_ringRadius,&__pyx_n_s_border,&__pyx_n_s_radialityPositivityConstraint,&__pyx_n_s_doIntensityWeighting,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
__pyx_defaults4 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self);
values[3] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_magnification);
values[5] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_border);
values[6] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
values[7] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
if (__pyx_kwds) {
Py_ssize_t kw_args;
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 129, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 129, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_threaded_static", 0, 3, 8, 1); __PYX_ERR(0, 129, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image_interp)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 129, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_threaded_static", 0, 3, 8, 2); __PYX_ERR(0, 129, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_magnification);
if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 129, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ringRadius);
if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 129, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_border);
if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 129, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_radialityPositivityConstraint);
if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 129, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_doIntensityWeighting);
if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 129, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_run_threaded_static") < 0)) __PYX_ERR(0, 129, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_image = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_image.memview)) __PYX_ERR(0, 129, __pyx_L3_error)
__pyx_v_image_interp = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_image_interp.memview)) __PYX_ERR(0, 129, __pyx_L3_error)
__pyx_v_magnification = ((PyObject*)values[3]);
if (values[4]) {
__pyx_v_ringRadius = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_ringRadius == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 129, __pyx_L3_error)
} else {
__pyx_v_ringRadius = ((double)((double)0.5));
}
__pyx_v_border = ((PyObject*)values[5]);
__pyx_v_radialityPositivityConstraint = values[6];
__pyx_v_doIntensityWeighting = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_run_threaded_static", 0, 3, 8, __pyx_nargs); __PYX_ERR(0, 129, __pyx_L3_error)
goto __pyx_L3_error;
__pyx_L3_error:;
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image_interp, 1);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_threaded_static", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_magnification), (&PyInt_Type), 0, "magnification", 1))) __PYX_ERR(0, 129, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_border), (&PyInt_Type), 0, "border", 1))) __PYX_ERR(0, 129, __pyx_L1_error)
__pyx_r = __pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_10_run_threaded_static(__pyx_self, __pyx_v_self, __pyx_v_image, __pyx_v_image_interp, __pyx_v_magnification, __pyx_v_ringRadius, __pyx_v_border, __pyx_v_radialityPositivityConstraint, __pyx_v_doIntensityWeighting);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image_interp, 1);
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_10_run_threaded_static(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, __Pyx_memviewslice __pyx_v_image, __Pyx_memviewslice __pyx_v_image_interp, PyObject *__pyx_v_magnification, double __pyx_v_ringRadius, PyObject *__pyx_v_border, PyObject *__pyx_v_radialityPositivityConstraint, PyObject *__pyx_v_doIntensityWeighting) {
int __pyx_v__magnification;
int __pyx_v__border;
float __pyx_v__ringRadius;
int __pyx_v__doIntensityWeighting;
int __pyx_v__radialityPositivityConstraint;
int __pyx_v_nRingCoordinates;
float __pyx_v_angleStep;
float __pyx_v_xRingCoordinates[12];
float __pyx_v_yRingCoordinates[12];
int __pyx_v_angleIter;
int __pyx_v_nFrames;
int __pyx_v_h;
int __pyx_v_w;
__Pyx_memviewslice __pyx_v_imGx = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_imGy = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_imRad = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_f;
int __pyx_v_j;
int __pyx_v_i;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_threaded_static", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_threaded_static", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGx, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGy, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imRad, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_10 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 129, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_magnification, __pyx_n_s_int) < 0) __PYX_ERR(0, 129, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_ringRadius, __pyx_n_s_float) < 0) __PYX_ERR(0, 129, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_border, __pyx_n_s_int) < 0) __PYX_ERR(0, 129, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_radialityPositivityConstraint, __pyx_n_s_bool) < 0) __PYX_ERR(0, 129, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_doIntensityWeighting, __pyx_n_s_bool) < 0) __PYX_ERR(0, 129, __pyx_L1_error)
__pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_11_run_threaded_static, 0, __pyx_n_s_Radiality__run_threaded_static, NULL, __pyx_n_s_nanopyx_liquid__le_radiality, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 129, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_11, sizeof(__pyx_defaults4), 2)) __PYX_ERR(0, 129, __pyx_L1_error)
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_5)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_5))) __PYX_ERR(0, 129, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_5);
__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_t_11)->__pyx_arg_magnification = ((PyObject*)__pyx_int_5);
__Pyx_GIVEREF(__pyx_int_5);
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_0)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_0))) __PYX_ERR(0, 129, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_0);
__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_t_11)->__pyx_arg_border = ((PyObject*)__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_11, __pyx_pf_7nanopyx_6liquid_13_le_radiality_8__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_11, __pyx_t_10);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_run_threaded_static, __pyx_t_11) < 0) __PYX_ERR(0, 129, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
/* … */
__pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_nanopyx_liquid__le_radiality, __pyx_n_s_run_threaded_static, 129, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 129, __pyx_L1_error)
130:
+131: cdef int _magnification = magnification
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_magnification); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 131, __pyx_L1_error) __pyx_v__magnification = __pyx_t_1;
+132: cdef int _border = border
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_border); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 132, __pyx_L1_error) __pyx_v__border = __pyx_t_1;
+133: cdef float _ringRadius = ringRadius * magnification
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_ringRadius); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_magnification); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v__ringRadius = __pyx_t_4;
+134: cdef int _doIntensityWeighting = doIntensityWeighting
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_doIntensityWeighting); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 134, __pyx_L1_error) __pyx_v__doIntensityWeighting = __pyx_t_1;
+135: cdef int _radialityPositivityConstraint = radialityPositivityConstraint
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_radialityPositivityConstraint); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 135, __pyx_L1_error) __pyx_v__radialityPositivityConstraint = __pyx_t_1;
+136: cdef int nRingCoordinates = 12
__pyx_v_nRingCoordinates = 12;
+137: cdef float angleStep = (pi * 2.) / nRingCoordinates
__pyx_v_angleStep = ((M_PI * 2.) / ((double)__pyx_v_nRingCoordinates));
138: cdef float[12] xRingCoordinates, yRingCoordinates
139:
+140: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
+141: for angleIter in range(nRingCoordinates):
__pyx_t_1 = __pyx_v_nRingCoordinates;
__pyx_t_5 = __pyx_t_1;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_angleIter = __pyx_t_6;
+142: xRingCoordinates[angleIter] = cos(angleStep * angleIter) * _ringRadius
(__pyx_v_xRingCoordinates[__pyx_v_angleIter]) = (cos((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
+143: yRingCoordinates[angleIter] = sin(angleStep * angleIter) * _ringRadius
(__pyx_v_yRingCoordinates[__pyx_v_angleIter]) = (sin((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
}
}
144:
+145: cdef int nFrames = image.shape[0]
__pyx_v_nFrames = (__pyx_v_image.shape[0]);
+146: cdef int h = image.shape[1]
__pyx_v_h = (__pyx_v_image.shape[1]);
+147: cdef int w = image.shape[2]
__pyx_v_w = (__pyx_v_image.shape[2]);
148:
+149: cdef float [:,:,:] imGx = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_image, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_2}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imGx = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+150: cdef float [:,:,:] imGy = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_image, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imGy = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+151: cdef float [:,:,:] imRad = np.zeros((nFrames, h*magnification, w*magnification), dtype=np.float32)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nFrames); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_h); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_v_magnification); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_w); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PyNumber_Multiply(__pyx_t_7, __pyx_v_magnification); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3)) __PYX_ERR(0, 151, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_10); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_10)) __PYX_ERR(0, 151, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_8 = 0; __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_7); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7)) __PYX_ERR(0, 151, __pyx_L1_error); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_float32); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imRad = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
152:
153: cdef int f, j, i
+154: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L10;
}
__pyx_L10:;
}
}
+155: for f in range(nFrames):
__pyx_t_1 = __pyx_v_nFrames;
__pyx_t_5 = __pyx_t_1;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_f = __pyx_t_6;
+156: _c_gradient_radiality(&image[f,0,0], &imGx[f,0,0], &imGy[f,0,0], h, w)
__pyx_t_11 = __pyx_v_f;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_f;
__pyx_t_18 = 0;
__pyx_t_19 = 0;
_c_gradient_radiality((&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_image.data + __pyx_t_11 * __pyx_v_image.strides[0]) ) + __pyx_t_12 * __pyx_v_image.strides[1]) ) + __pyx_t_13 * __pyx_v_image.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_14 * __pyx_v_imGx.strides[0]) ) + __pyx_t_15 * __pyx_v_imGx.strides[1]) ) + __pyx_t_16 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_17 * __pyx_v_imGy.strides[0]) ) + __pyx_t_18 * __pyx_v_imGy.strides[1]) ) + __pyx_t_19 * __pyx_v_imGy.strides[2]) )))), __pyx_v_h, __pyx_v_w);
+157: for j in prange((1 + _border) * _magnification, (h - 1 - _border) * _magnification, schedule = "static"):
__pyx_t_20 = ((1 + __pyx_v__border) * __pyx_v__magnification);
__pyx_t_21 = (((__pyx_v_h - 1) - __pyx_v__border) * __pyx_v__magnification);
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_23 = (__pyx_t_21 - __pyx_t_20 + 1 - 1/abs(1)) / 1;
if (__pyx_t_23 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_i) firstprivate(__pyx_v_j) lastprivate(__pyx_v_j) schedule(static)
#endif /* _OPENMP */
for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_23; __pyx_t_22++){
{
__pyx_v_j = (int)(__pyx_t_20 + 1 * __pyx_t_22);
/* Initialize private variables to invalid values */
__pyx_v_i = ((int)0xbad0bad0);
+158: for i in range((1 + _border) * _magnification, (w - 1 - _border) * _magnification):
__pyx_t_24 = (((__pyx_v_w - 1) - __pyx_v__border) * __pyx_v__magnification);
__pyx_t_25 = __pyx_t_24;
for (__pyx_t_26 = ((1 + __pyx_v__border) * __pyx_v__magnification); __pyx_t_26 < __pyx_t_25; __pyx_t_26+=1) {
__pyx_v_i = __pyx_t_26;
+159: if _doIntensityWeighting:
__pyx_t_27 = (__pyx_v__doIntensityWeighting != 0);
if (__pyx_t_27) {
/* … */
goto __pyx_L19;
}
+160: imRad[f,j,i] = _c_calculate_radiality_per_subpixel(i, j, &imGx[f,0,0], &imGy[f,0,0], xRingCoordinates, yRingCoordinates, _magnification, _ringRadius, nRingCoordinates, _radialityPositivityConstraint, h, w) * image_interp[f, j, i]
__pyx_t_19 = __pyx_v_f;
__pyx_t_18 = 0;
__pyx_t_17 = 0;
__pyx_t_16 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_14 = 0;
__pyx_t_13 = __pyx_v_f;
__pyx_t_12 = __pyx_v_j;
__pyx_t_11 = __pyx_v_i;
__pyx_t_28 = __pyx_v_f;
__pyx_t_29 = __pyx_v_j;
__pyx_t_30 = __pyx_v_i;
*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imRad.data + __pyx_t_28 * __pyx_v_imRad.strides[0]) ) + __pyx_t_29 * __pyx_v_imRad.strides[1]) ) + __pyx_t_30 * __pyx_v_imRad.strides[2]) )) = (_c_calculate_radiality_per_subpixel(__pyx_v_i, __pyx_v_j, (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_19 * __pyx_v_imGx.strides[0]) ) + __pyx_t_18 * __pyx_v_imGx.strides[1]) ) + __pyx_t_17 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_16 * __pyx_v_imGy.strides[0]) ) + __pyx_t_15 * __pyx_v_imGy.strides[1]) ) + __pyx_t_14 * __pyx_v_imGy.strides[2]) )))), __pyx_v_xRingCoordinates, __pyx_v_yRingCoordinates, __pyx_v__magnification, __pyx_v__ringRadius, __pyx_v_nRingCoordinates, __pyx_v__radialityPositivityConstraint, __pyx_v_h, __pyx_v_w) * (*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_image_interp.data + __pyx_t_13 * __pyx_v_image_interp.strides[0]) ) + __pyx_t_12 * __pyx_v_image_interp.strides[1]) ) + __pyx_t_11 * __pyx_v_image_interp.strides[2]) ))));
161: else:
+162: imRad[f,j,i] = _c_calculate_radiality_per_subpixel(i, j, &imGx[f,0,0], &imGy[f,0,0], xRingCoordinates, yRingCoordinates, _magnification, _ringRadius, nRingCoordinates, _radialityPositivityConstraint, h, w)
/*else*/ {
__pyx_t_11 = __pyx_v_f;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_f;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_i;
*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imRad.data + __pyx_t_17 * __pyx_v_imRad.strides[0]) ) + __pyx_t_18 * __pyx_v_imRad.strides[1]) ) + __pyx_t_19 * __pyx_v_imRad.strides[2]) )) = _c_calculate_radiality_per_subpixel(__pyx_v_i, __pyx_v_j, (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_11 * __pyx_v_imGx.strides[0]) ) + __pyx_t_12 * __pyx_v_imGx.strides[1]) ) + __pyx_t_13 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_14 * __pyx_v_imGy.strides[0]) ) + __pyx_t_15 * __pyx_v_imGy.strides[1]) ) + __pyx_t_16 * __pyx_v_imGy.strides[2]) )))), __pyx_v_xRingCoordinates, __pyx_v_yRingCoordinates, __pyx_v__magnification, __pyx_v__ringRadius, __pyx_v_nRingCoordinates, __pyx_v__radialityPositivityConstraint, __pyx_v_h, __pyx_v_w);
}
__pyx_L19:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
}
163:
+164: return np.asarray(imRad)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_asarray); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_imRad, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
165:
+166: def _run_threaded_dynamic(self, float[:,:,:] image, float[:,:,:] image_interp, magnification: int = 5, ringRadius: float = 0.5, border: int = 0, radialityPositivityConstraint: bool = True, doIntensityWeighting: bool = True):
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_10__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self)->__pyx_arg_magnification);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self)->__pyx_arg_magnification);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self)->__pyx_arg_magnification)) __PYX_ERR(0, 166, __pyx_L1_error);
__Pyx_GIVEREF(__pyx_t_1);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(0, 166, __pyx_L1_error);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self)->__pyx_arg_border);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self)->__pyx_arg_border);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self)->__pyx_arg_border)) __PYX_ERR(0, 166, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)Py_True))) __PYX_ERR(0, 166, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)Py_True))) __PYX_ERR(0, 166, __pyx_L1_error);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None)) __PYX_ERR(0, 166, __pyx_L1_error);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_13_run_threaded_dynamic(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_13_run_threaded_dynamic = {"_run_threaded_dynamic", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_13_run_threaded_dynamic, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_13_run_threaded_dynamic(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
CYTHON_UNUSED PyObject *__pyx_v_self = 0;
__Pyx_memviewslice __pyx_v_image = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_image_interp = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_magnification = 0;
double __pyx_v_ringRadius;
PyObject *__pyx_v_border = 0;
PyObject *__pyx_v_radialityPositivityConstraint = 0;
PyObject *__pyx_v_doIntensityWeighting = 0;
#if !CYTHON_METH_FASTCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_threaded_dynamic (wrapper)", 0);
#if !CYTHON_METH_FASTCALL
#if CYTHON_ASSUME_SAFE_MACROS
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args);
if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 166, __pyx_L3_error)
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_image,&__pyx_n_s_image_interp,&__pyx_n_s_magnification,&__pyx_n_s_ringRadius,&__pyx_n_s_border,&__pyx_n_s_radialityPositivityConstraint,&__pyx_n_s_doIntensityWeighting,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
__pyx_defaults5 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self);
values[3] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_magnification);
values[5] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_border);
values[6] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
values[7] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
if (__pyx_kwds) {
Py_ssize_t kw_args;
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_threaded_dynamic", 0, 3, 8, 1); __PYX_ERR(0, 166, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image_interp)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_threaded_dynamic", 0, 3, 8, 2); __PYX_ERR(0, 166, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_magnification);
if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ringRadius);
if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_border);
if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_radialityPositivityConstraint);
if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_doIntensityWeighting);
if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_run_threaded_dynamic") < 0)) __PYX_ERR(0, 166, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_image = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_image.memview)) __PYX_ERR(0, 166, __pyx_L3_error)
__pyx_v_image_interp = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_image_interp.memview)) __PYX_ERR(0, 166, __pyx_L3_error)
__pyx_v_magnification = ((PyObject*)values[3]);
if (values[4]) {
__pyx_v_ringRadius = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_ringRadius == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L3_error)
} else {
__pyx_v_ringRadius = ((double)((double)0.5));
}
__pyx_v_border = ((PyObject*)values[5]);
__pyx_v_radialityPositivityConstraint = values[6];
__pyx_v_doIntensityWeighting = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_run_threaded_dynamic", 0, 3, 8, __pyx_nargs); __PYX_ERR(0, 166, __pyx_L3_error)
goto __pyx_L3_error;
__pyx_L3_error:;
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image_interp, 1);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_threaded_dynamic", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_magnification), (&PyInt_Type), 0, "magnification", 1))) __PYX_ERR(0, 166, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_border), (&PyInt_Type), 0, "border", 1))) __PYX_ERR(0, 166, __pyx_L1_error)
__pyx_r = __pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_12_run_threaded_dynamic(__pyx_self, __pyx_v_self, __pyx_v_image, __pyx_v_image_interp, __pyx_v_magnification, __pyx_v_ringRadius, __pyx_v_border, __pyx_v_radialityPositivityConstraint, __pyx_v_doIntensityWeighting);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image_interp, 1);
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_12_run_threaded_dynamic(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, __Pyx_memviewslice __pyx_v_image, __Pyx_memviewslice __pyx_v_image_interp, PyObject *__pyx_v_magnification, double __pyx_v_ringRadius, PyObject *__pyx_v_border, PyObject *__pyx_v_radialityPositivityConstraint, PyObject *__pyx_v_doIntensityWeighting) {
int __pyx_v__magnification;
int __pyx_v__border;
float __pyx_v__ringRadius;
int __pyx_v__doIntensityWeighting;
int __pyx_v__radialityPositivityConstraint;
int __pyx_v_nRingCoordinates;
float __pyx_v_angleStep;
float __pyx_v_xRingCoordinates[12];
float __pyx_v_yRingCoordinates[12];
int __pyx_v_angleIter;
int __pyx_v_nFrames;
int __pyx_v_h;
int __pyx_v_w;
__Pyx_memviewslice __pyx_v_imGx = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_imGy = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_imRad = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_f;
int __pyx_v_j;
int __pyx_v_i;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_threaded_dynamic", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_threaded_dynamic", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGx, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGy, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imRad, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_11 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_magnification, __pyx_n_s_int) < 0) __PYX_ERR(0, 166, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_ringRadius, __pyx_n_s_float) < 0) __PYX_ERR(0, 166, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_border, __pyx_n_s_int) < 0) __PYX_ERR(0, 166, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_radialityPositivityConstraint, __pyx_n_s_bool) < 0) __PYX_ERR(0, 166, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_doIntensityWeighting, __pyx_n_s_bool) < 0) __PYX_ERR(0, 166, __pyx_L1_error)
__pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_13_run_threaded_dynamic, 0, __pyx_n_s_Radiality__run_threaded_dynamic, NULL, __pyx_n_s_nanopyx_liquid__le_radiality, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_10, sizeof(__pyx_defaults5), 2)) __PYX_ERR(0, 166, __pyx_L1_error)
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_5)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_5))) __PYX_ERR(0, 166, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_5);
__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_t_10)->__pyx_arg_magnification = ((PyObject*)__pyx_int_5);
__Pyx_GIVEREF(__pyx_int_5);
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_0)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_0))) __PYX_ERR(0, 166, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_0);
__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_t_10)->__pyx_arg_border = ((PyObject*)__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_10, __pyx_pf_7nanopyx_6liquid_13_le_radiality_10__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_10, __pyx_t_11);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_run_threaded_dynamic, __pyx_t_10) < 0) __PYX_ERR(0, 166, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
/* … */
__pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_nanopyx_liquid__le_radiality, __pyx_n_s_run_threaded_dynamic, 166, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(0, 166, __pyx_L1_error)
167:
+168: cdef int _magnification = magnification
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_magnification); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 168, __pyx_L1_error) __pyx_v__magnification = __pyx_t_1;
+169: cdef int _border = border
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_border); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 169, __pyx_L1_error) __pyx_v__border = __pyx_t_1;
+170: cdef float _ringRadius = ringRadius * magnification
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_ringRadius); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_magnification); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v__ringRadius = __pyx_t_4;
+171: cdef int _doIntensityWeighting = doIntensityWeighting
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_doIntensityWeighting); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 171, __pyx_L1_error) __pyx_v__doIntensityWeighting = __pyx_t_1;
+172: cdef int _radialityPositivityConstraint = radialityPositivityConstraint
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_radialityPositivityConstraint); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 172, __pyx_L1_error) __pyx_v__radialityPositivityConstraint = __pyx_t_1;
+173: cdef int nRingCoordinates = 12
__pyx_v_nRingCoordinates = 12;
+174: cdef float angleStep = (pi * 2.) / nRingCoordinates
__pyx_v_angleStep = ((M_PI * 2.) / ((double)__pyx_v_nRingCoordinates));
175: cdef float[12] xRingCoordinates, yRingCoordinates
176:
+177: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
+178: for angleIter in range(nRingCoordinates):
__pyx_t_1 = __pyx_v_nRingCoordinates;
__pyx_t_5 = __pyx_t_1;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_angleIter = __pyx_t_6;
+179: xRingCoordinates[angleIter] = cos(angleStep * angleIter) * _ringRadius
(__pyx_v_xRingCoordinates[__pyx_v_angleIter]) = (cos((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
+180: yRingCoordinates[angleIter] = sin(angleStep * angleIter) * _ringRadius
(__pyx_v_yRingCoordinates[__pyx_v_angleIter]) = (sin((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
}
}
181:
+182: cdef int nFrames = image.shape[0]
__pyx_v_nFrames = (__pyx_v_image.shape[0]);
+183: cdef int h = image.shape[1]
__pyx_v_h = (__pyx_v_image.shape[1]);
+184: cdef int w = image.shape[2]
__pyx_v_w = (__pyx_v_image.shape[2]);
185:
+186: cdef float [:,:,:] imGx = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_image, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_2}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imGx = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+187: cdef float [:,:,:] imGy = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_image, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imGy = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+188: cdef float [:,:,:] imRad = np.zeros((nFrames, h*magnification, w*magnification), dtype=np.float32)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nFrames); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_h); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_v_magnification); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_w); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PyNumber_Multiply(__pyx_t_7, __pyx_v_magnification); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3)) __PYX_ERR(0, 188, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_10); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_10)) __PYX_ERR(0, 188, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_8 = 0; __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_7); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7)) __PYX_ERR(0, 188, __pyx_L1_error); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_float32); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imRad = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
189:
190: cdef int f, j, i
+191: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L10;
}
__pyx_L10:;
}
}
+192: for f in range(nFrames):
__pyx_t_1 = __pyx_v_nFrames;
__pyx_t_5 = __pyx_t_1;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_f = __pyx_t_6;
+193: _c_gradient_radiality(&image[f,0,0], &imGx[f,0,0], &imGy[f,0,0], h, w)
__pyx_t_11 = __pyx_v_f;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_f;
__pyx_t_18 = 0;
__pyx_t_19 = 0;
_c_gradient_radiality((&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_image.data + __pyx_t_11 * __pyx_v_image.strides[0]) ) + __pyx_t_12 * __pyx_v_image.strides[1]) ) + __pyx_t_13 * __pyx_v_image.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_14 * __pyx_v_imGx.strides[0]) ) + __pyx_t_15 * __pyx_v_imGx.strides[1]) ) + __pyx_t_16 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_17 * __pyx_v_imGy.strides[0]) ) + __pyx_t_18 * __pyx_v_imGy.strides[1]) ) + __pyx_t_19 * __pyx_v_imGy.strides[2]) )))), __pyx_v_h, __pyx_v_w);
+194: for j in prange((1 + _border) * _magnification, (h - 1 - _border) * _magnification, schedule = "dynamic"):
__pyx_t_20 = ((1 + __pyx_v__border) * __pyx_v__magnification);
__pyx_t_21 = (((__pyx_v_h - 1) - __pyx_v__border) * __pyx_v__magnification);
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_23 = (__pyx_t_21 - __pyx_t_20 + 1 - 1/abs(1)) / 1;
if (__pyx_t_23 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_i) firstprivate(__pyx_v_j) lastprivate(__pyx_v_j) schedule(dynamic)
#endif /* _OPENMP */
for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_23; __pyx_t_22++){
{
__pyx_v_j = (int)(__pyx_t_20 + 1 * __pyx_t_22);
/* Initialize private variables to invalid values */
__pyx_v_i = ((int)0xbad0bad0);
+195: for i in range((1 + _border) * _magnification, (w - 1 - _border) * _magnification):
__pyx_t_24 = (((__pyx_v_w - 1) - __pyx_v__border) * __pyx_v__magnification);
__pyx_t_25 = __pyx_t_24;
for (__pyx_t_26 = ((1 + __pyx_v__border) * __pyx_v__magnification); __pyx_t_26 < __pyx_t_25; __pyx_t_26+=1) {
__pyx_v_i = __pyx_t_26;
+196: if _doIntensityWeighting:
__pyx_t_27 = (__pyx_v__doIntensityWeighting != 0);
if (__pyx_t_27) {
/* … */
goto __pyx_L19;
}
+197: imRad[f,j,i] = _c_calculate_radiality_per_subpixel(i, j, &imGx[f,0,0], &imGy[f,0,0], xRingCoordinates, yRingCoordinates, _magnification, _ringRadius, nRingCoordinates, _radialityPositivityConstraint, h, w) * image_interp[f, j, i]
__pyx_t_19 = __pyx_v_f;
__pyx_t_18 = 0;
__pyx_t_17 = 0;
__pyx_t_16 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_14 = 0;
__pyx_t_13 = __pyx_v_f;
__pyx_t_12 = __pyx_v_j;
__pyx_t_11 = __pyx_v_i;
__pyx_t_28 = __pyx_v_f;
__pyx_t_29 = __pyx_v_j;
__pyx_t_30 = __pyx_v_i;
*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imRad.data + __pyx_t_28 * __pyx_v_imRad.strides[0]) ) + __pyx_t_29 * __pyx_v_imRad.strides[1]) ) + __pyx_t_30 * __pyx_v_imRad.strides[2]) )) = (_c_calculate_radiality_per_subpixel(__pyx_v_i, __pyx_v_j, (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_19 * __pyx_v_imGx.strides[0]) ) + __pyx_t_18 * __pyx_v_imGx.strides[1]) ) + __pyx_t_17 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_16 * __pyx_v_imGy.strides[0]) ) + __pyx_t_15 * __pyx_v_imGy.strides[1]) ) + __pyx_t_14 * __pyx_v_imGy.strides[2]) )))), __pyx_v_xRingCoordinates, __pyx_v_yRingCoordinates, __pyx_v__magnification, __pyx_v__ringRadius, __pyx_v_nRingCoordinates, __pyx_v__radialityPositivityConstraint, __pyx_v_h, __pyx_v_w) * (*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_image_interp.data + __pyx_t_13 * __pyx_v_image_interp.strides[0]) ) + __pyx_t_12 * __pyx_v_image_interp.strides[1]) ) + __pyx_t_11 * __pyx_v_image_interp.strides[2]) ))));
198: else:
+199: imRad[f,j,i] = _c_calculate_radiality_per_subpixel(i, j, &imGx[f,0,0], &imGy[f,0,0], xRingCoordinates, yRingCoordinates, _magnification, _ringRadius, nRingCoordinates, _radialityPositivityConstraint, h, w)
/*else*/ {
__pyx_t_11 = __pyx_v_f;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_f;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_i;
*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imRad.data + __pyx_t_17 * __pyx_v_imRad.strides[0]) ) + __pyx_t_18 * __pyx_v_imRad.strides[1]) ) + __pyx_t_19 * __pyx_v_imRad.strides[2]) )) = _c_calculate_radiality_per_subpixel(__pyx_v_i, __pyx_v_j, (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_11 * __pyx_v_imGx.strides[0]) ) + __pyx_t_12 * __pyx_v_imGx.strides[1]) ) + __pyx_t_13 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_14 * __pyx_v_imGy.strides[0]) ) + __pyx_t_15 * __pyx_v_imGy.strides[1]) ) + __pyx_t_16 * __pyx_v_imGy.strides[2]) )))), __pyx_v_xRingCoordinates, __pyx_v_yRingCoordinates, __pyx_v__magnification, __pyx_v__ringRadius, __pyx_v_nRingCoordinates, __pyx_v__radialityPositivityConstraint, __pyx_v_h, __pyx_v_w);
}
__pyx_L19:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
}
200:
+201: return np.asarray(imRad)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_asarray); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_imRad, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
202:
+203: def _run_threaded_guided(self, float[:,:,:] image, float[:,:,:] image_interp, magnification: int = 5, ringRadius: float = 0.5, border: int = 0, radialityPositivityConstraint: bool = True, doIntensityWeighting: bool = True):
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_12__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 203, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 203, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self)->__pyx_arg_magnification);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self)->__pyx_arg_magnification);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self)->__pyx_arg_magnification)) __PYX_ERR(0, 203, __pyx_L1_error);
__Pyx_GIVEREF(__pyx_t_1);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(0, 203, __pyx_L1_error);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self)->__pyx_arg_border);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self)->__pyx_arg_border);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self)->__pyx_arg_border)) __PYX_ERR(0, 203, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)Py_True))) __PYX_ERR(0, 203, __pyx_L1_error);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)Py_True))) __PYX_ERR(0, 203, __pyx_L1_error);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 203, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(0, 203, __pyx_L1_error);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None)) __PYX_ERR(0, 203, __pyx_L1_error);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_15_run_threaded_guided(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_15_run_threaded_guided = {"_run_threaded_guided", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_15_run_threaded_guided, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_15_run_threaded_guided(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
CYTHON_UNUSED PyObject *__pyx_v_self = 0;
__Pyx_memviewslice __pyx_v_image = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_image_interp = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_magnification = 0;
double __pyx_v_ringRadius;
PyObject *__pyx_v_border = 0;
PyObject *__pyx_v_radialityPositivityConstraint = 0;
PyObject *__pyx_v_doIntensityWeighting = 0;
#if !CYTHON_METH_FASTCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_threaded_guided (wrapper)", 0);
#if !CYTHON_METH_FASTCALL
#if CYTHON_ASSUME_SAFE_MACROS
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args);
if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 203, __pyx_L3_error)
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_image,&__pyx_n_s_image_interp,&__pyx_n_s_magnification,&__pyx_n_s_ringRadius,&__pyx_n_s_border,&__pyx_n_s_radialityPositivityConstraint,&__pyx_n_s_doIntensityWeighting,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
__pyx_defaults6 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self);
values[3] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_magnification);
values[5] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_border);
values[6] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
values[7] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
if (__pyx_kwds) {
Py_ssize_t kw_args;
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_threaded_guided", 0, 3, 8, 1); __PYX_ERR(0, 203, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image_interp)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_threaded_guided", 0, 3, 8, 2); __PYX_ERR(0, 203, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_magnification);
if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ringRadius);
if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_border);
if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_radialityPositivityConstraint);
if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_doIntensityWeighting);
if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_run_threaded_guided") < 0)) __PYX_ERR(0, 203, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_image = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_image.memview)) __PYX_ERR(0, 203, __pyx_L3_error)
__pyx_v_image_interp = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_image_interp.memview)) __PYX_ERR(0, 203, __pyx_L3_error)
__pyx_v_magnification = ((PyObject*)values[3]);
if (values[4]) {
__pyx_v_ringRadius = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_ringRadius == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L3_error)
} else {
__pyx_v_ringRadius = ((double)((double)0.5));
}
__pyx_v_border = ((PyObject*)values[5]);
__pyx_v_radialityPositivityConstraint = values[6];
__pyx_v_doIntensityWeighting = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_run_threaded_guided", 0, 3, 8, __pyx_nargs); __PYX_ERR(0, 203, __pyx_L3_error)
goto __pyx_L3_error;
__pyx_L3_error:;
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image_interp, 1);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_threaded_guided", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_magnification), (&PyInt_Type), 0, "magnification", 1))) __PYX_ERR(0, 203, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_border), (&PyInt_Type), 0, "border", 1))) __PYX_ERR(0, 203, __pyx_L1_error)
__pyx_r = __pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_14_run_threaded_guided(__pyx_self, __pyx_v_self, __pyx_v_image, __pyx_v_image_interp, __pyx_v_magnification, __pyx_v_ringRadius, __pyx_v_border, __pyx_v_radialityPositivityConstraint, __pyx_v_doIntensityWeighting);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image_interp, 1);
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_14_run_threaded_guided(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, __Pyx_memviewslice __pyx_v_image, __Pyx_memviewslice __pyx_v_image_interp, PyObject *__pyx_v_magnification, double __pyx_v_ringRadius, PyObject *__pyx_v_border, PyObject *__pyx_v_radialityPositivityConstraint, PyObject *__pyx_v_doIntensityWeighting) {
int __pyx_v__magnification;
int __pyx_v__border;
float __pyx_v__ringRadius;
int __pyx_v__doIntensityWeighting;
int __pyx_v__radialityPositivityConstraint;
int __pyx_v_nRingCoordinates;
float __pyx_v_angleStep;
float __pyx_v_xRingCoordinates[12];
float __pyx_v_yRingCoordinates[12];
int __pyx_v_angleIter;
int __pyx_v_nFrames;
int __pyx_v_h;
int __pyx_v_w;
__Pyx_memviewslice __pyx_v_imGx = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_imGy = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_imRad = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_f;
int __pyx_v_j;
int __pyx_v_i;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_threaded_guided", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_threaded_guided", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGx, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGy, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imRad, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_10 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 203, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_magnification, __pyx_n_s_int) < 0) __PYX_ERR(0, 203, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_ringRadius, __pyx_n_s_float) < 0) __PYX_ERR(0, 203, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_border, __pyx_n_s_int) < 0) __PYX_ERR(0, 203, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_radialityPositivityConstraint, __pyx_n_s_bool) < 0) __PYX_ERR(0, 203, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_doIntensityWeighting, __pyx_n_s_bool) < 0) __PYX_ERR(0, 203, __pyx_L1_error)
__pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_15_run_threaded_guided, 0, __pyx_n_s_Radiality__run_threaded_guided, NULL, __pyx_n_s_nanopyx_liquid__le_radiality, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 203, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_11, sizeof(__pyx_defaults6), 2)) __PYX_ERR(0, 203, __pyx_L1_error)
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_5)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_5))) __PYX_ERR(0, 203, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_5);
__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_t_11)->__pyx_arg_magnification = ((PyObject*)__pyx_int_5);
__Pyx_GIVEREF(__pyx_int_5);
if (!(likely(__Pyx_Py3Int_CheckExact(__pyx_int_0)) || __Pyx_RaiseUnexpectedTypeError("int", __pyx_int_0))) __PYX_ERR(0, 203, __pyx_L1_error)
__Pyx_INCREF(__pyx_int_0);
__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_t_11)->__pyx_arg_border = ((PyObject*)__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_11, __pyx_pf_7nanopyx_6liquid_13_le_radiality_12__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_11, __pyx_t_10);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_run_threaded_guided, __pyx_t_11) < 0) __PYX_ERR(0, 203, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
/* … */
__pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_nanopyx_liquid__le_radiality, __pyx_n_s_run_threaded_guided, 203, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 203, __pyx_L1_error)
204:
+205: cdef int _magnification = magnification
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_magnification); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 205, __pyx_L1_error) __pyx_v__magnification = __pyx_t_1;
+206: cdef int _border = border
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_border); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 206, __pyx_L1_error) __pyx_v__border = __pyx_t_1;
+207: cdef float _ringRadius = ringRadius * magnification
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_ringRadius); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_magnification); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v__ringRadius = __pyx_t_4;
+208: cdef int _doIntensityWeighting = doIntensityWeighting
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_doIntensityWeighting); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 208, __pyx_L1_error) __pyx_v__doIntensityWeighting = __pyx_t_1;
+209: cdef int _radialityPositivityConstraint = radialityPositivityConstraint
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_radialityPositivityConstraint); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 209, __pyx_L1_error) __pyx_v__radialityPositivityConstraint = __pyx_t_1;
+210: cdef int nRingCoordinates = 12
__pyx_v_nRingCoordinates = 12;
+211: cdef float angleStep = (pi * 2.) / nRingCoordinates
__pyx_v_angleStep = ((M_PI * 2.) / ((double)__pyx_v_nRingCoordinates));
212: cdef float[12] xRingCoordinates, yRingCoordinates
213:
+214: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
+215: for angleIter in range(nRingCoordinates):
__pyx_t_1 = __pyx_v_nRingCoordinates;
__pyx_t_5 = __pyx_t_1;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_angleIter = __pyx_t_6;
+216: xRingCoordinates[angleIter] = cos(angleStep * angleIter) * _ringRadius
(__pyx_v_xRingCoordinates[__pyx_v_angleIter]) = (cos((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
+217: yRingCoordinates[angleIter] = sin(angleStep * angleIter) * _ringRadius
(__pyx_v_yRingCoordinates[__pyx_v_angleIter]) = (sin((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
}
}
218:
+219: cdef int nFrames = image.shape[0]
__pyx_v_nFrames = (__pyx_v_image.shape[0]);
+220: cdef int h = image.shape[1]
__pyx_v_h = (__pyx_v_image.shape[1]);
+221: cdef int w = image.shape[2]
__pyx_v_w = (__pyx_v_image.shape[2]);
222:
+223: cdef float [:,:,:] imGx = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_image, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_2}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imGx = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+224: cdef float [:,:,:] imGy = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_image, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imGy = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+225: cdef float [:,:,:] imRad = np.zeros((nFrames, h*magnification, w*magnification), dtype=np.float32)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nFrames); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_h); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_v_magnification); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_w); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PyNumber_Multiply(__pyx_t_7, __pyx_v_magnification); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3)) __PYX_ERR(0, 225, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8)) __PYX_ERR(0, 225, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_10); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_10)) __PYX_ERR(0, 225, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_8 = 0; __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_7); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7)) __PYX_ERR(0, 225, __pyx_L1_error); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_float32); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_imRad = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
226:
227: cdef int f, j, i
+228: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L10;
}
__pyx_L10:;
}
}
+229: for f in range(nFrames):
__pyx_t_1 = __pyx_v_nFrames;
__pyx_t_5 = __pyx_t_1;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_f = __pyx_t_6;
+230: _c_gradient_radiality(&image[f,0,0], &imGx[f,0,0], &imGy[f,0,0], h, w)
__pyx_t_11 = __pyx_v_f;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_f;
__pyx_t_18 = 0;
__pyx_t_19 = 0;
_c_gradient_radiality((&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_image.data + __pyx_t_11 * __pyx_v_image.strides[0]) ) + __pyx_t_12 * __pyx_v_image.strides[1]) ) + __pyx_t_13 * __pyx_v_image.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_14 * __pyx_v_imGx.strides[0]) ) + __pyx_t_15 * __pyx_v_imGx.strides[1]) ) + __pyx_t_16 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_17 * __pyx_v_imGy.strides[0]) ) + __pyx_t_18 * __pyx_v_imGy.strides[1]) ) + __pyx_t_19 * __pyx_v_imGy.strides[2]) )))), __pyx_v_h, __pyx_v_w);
+231: for j in prange((1 + _border) * _magnification, (h - 1 - _border) * _magnification, schedule = "guided"):
__pyx_t_20 = ((1 + __pyx_v__border) * __pyx_v__magnification);
__pyx_t_21 = (((__pyx_v_h - 1) - __pyx_v__border) * __pyx_v__magnification);
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_23 = (__pyx_t_21 - __pyx_t_20 + 1 - 1/abs(1)) / 1;
if (__pyx_t_23 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_i) firstprivate(__pyx_v_j) lastprivate(__pyx_v_j) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_23; __pyx_t_22++){
{
__pyx_v_j = (int)(__pyx_t_20 + 1 * __pyx_t_22);
/* Initialize private variables to invalid values */
__pyx_v_i = ((int)0xbad0bad0);
+232: for i in range((1 + _border) * _magnification, (w - 1 - _border) * _magnification):
__pyx_t_24 = (((__pyx_v_w - 1) - __pyx_v__border) * __pyx_v__magnification);
__pyx_t_25 = __pyx_t_24;
for (__pyx_t_26 = ((1 + __pyx_v__border) * __pyx_v__magnification); __pyx_t_26 < __pyx_t_25; __pyx_t_26+=1) {
__pyx_v_i = __pyx_t_26;
+233: if _doIntensityWeighting:
__pyx_t_27 = (__pyx_v__doIntensityWeighting != 0);
if (__pyx_t_27) {
/* … */
goto __pyx_L19;
}
+234: imRad[f,j,i] = _c_calculate_radiality_per_subpixel(i, j, &imGx[f,0,0], &imGy[f,0,0], xRingCoordinates, yRingCoordinates, _magnification, _ringRadius, nRingCoordinates, _radialityPositivityConstraint, h, w) * image_interp[f, j, i]
__pyx_t_19 = __pyx_v_f;
__pyx_t_18 = 0;
__pyx_t_17 = 0;
__pyx_t_16 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_14 = 0;
__pyx_t_13 = __pyx_v_f;
__pyx_t_12 = __pyx_v_j;
__pyx_t_11 = __pyx_v_i;
__pyx_t_28 = __pyx_v_f;
__pyx_t_29 = __pyx_v_j;
__pyx_t_30 = __pyx_v_i;
*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imRad.data + __pyx_t_28 * __pyx_v_imRad.strides[0]) ) + __pyx_t_29 * __pyx_v_imRad.strides[1]) ) + __pyx_t_30 * __pyx_v_imRad.strides[2]) )) = (_c_calculate_radiality_per_subpixel(__pyx_v_i, __pyx_v_j, (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_19 * __pyx_v_imGx.strides[0]) ) + __pyx_t_18 * __pyx_v_imGx.strides[1]) ) + __pyx_t_17 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_16 * __pyx_v_imGy.strides[0]) ) + __pyx_t_15 * __pyx_v_imGy.strides[1]) ) + __pyx_t_14 * __pyx_v_imGy.strides[2]) )))), __pyx_v_xRingCoordinates, __pyx_v_yRingCoordinates, __pyx_v__magnification, __pyx_v__ringRadius, __pyx_v_nRingCoordinates, __pyx_v__radialityPositivityConstraint, __pyx_v_h, __pyx_v_w) * (*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_image_interp.data + __pyx_t_13 * __pyx_v_image_interp.strides[0]) ) + __pyx_t_12 * __pyx_v_image_interp.strides[1]) ) + __pyx_t_11 * __pyx_v_image_interp.strides[2]) ))));
235: else:
+236: imRad[f,j,i] = _c_calculate_radiality_per_subpixel(i, j, &imGx[f,0,0], &imGy[f,0,0], xRingCoordinates, yRingCoordinates, _magnification, _ringRadius, nRingCoordinates, _radialityPositivityConstraint, h, w)
/*else*/ {
__pyx_t_11 = __pyx_v_f;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_f;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_f;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_i;
*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imRad.data + __pyx_t_17 * __pyx_v_imRad.strides[0]) ) + __pyx_t_18 * __pyx_v_imRad.strides[1]) ) + __pyx_t_19 * __pyx_v_imRad.strides[2]) )) = _c_calculate_radiality_per_subpixel(__pyx_v_i, __pyx_v_j, (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_11 * __pyx_v_imGx.strides[0]) ) + __pyx_t_12 * __pyx_v_imGx.strides[1]) ) + __pyx_t_13 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_14 * __pyx_v_imGy.strides[0]) ) + __pyx_t_15 * __pyx_v_imGy.strides[1]) ) + __pyx_t_16 * __pyx_v_imGy.strides[2]) )))), __pyx_v_xRingCoordinates, __pyx_v_yRingCoordinates, __pyx_v__magnification, __pyx_v__ringRadius, __pyx_v_nRingCoordinates, __pyx_v__radialityPositivityConstraint, __pyx_v_h, __pyx_v_w);
}
__pyx_L19:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
}
237:
+238: return np.asarray(imRad)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_asarray); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_imRad, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; __pyx_t_1 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_1 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_7}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
239:
240:
+241: def _run_opencl(self, image, image_interp, magnification=5, ringRadius=0.5, border=0, radialityPositivityConstraint=True, doIntensityWeighting=True, device=None):
/* Python wrapper */
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_17_run_opencl(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_17_run_opencl = {"_run_opencl", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_17_run_opencl, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7nanopyx_6liquid_13_le_radiality_9Radiality_17_run_opencl(PyObject *__pyx_self,
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_image = 0;
PyObject *__pyx_v_image_interp = 0;
PyObject *__pyx_v_magnification = 0;
PyObject *__pyx_v_ringRadius = 0;
PyObject *__pyx_v_border = 0;
PyObject *__pyx_v_radialityPositivityConstraint = 0;
CYTHON_UNUSED PyObject *__pyx_v_doIntensityWeighting = 0;
PyObject *__pyx_v_device = 0;
#if !CYTHON_METH_FASTCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_opencl (wrapper)", 0);
#if !CYTHON_METH_FASTCALL
#if CYTHON_ASSUME_SAFE_MACROS
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args);
if (unlikely((__pyx_nargs < 0))) __PYX_ERR(0, 241, __pyx_L3_error)
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_image,&__pyx_n_s_image_interp,&__pyx_n_s_magnification,&__pyx_n_s_ringRadius,&__pyx_n_s_border,&__pyx_n_s_radialityPositivityConstraint,&__pyx_n_s_doIntensityWeighting,&__pyx_n_s_device,0};
PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)__pyx_int_5)));
values[4] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject*)__pyx_float_0_5)));
values[5] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)__pyx_int_0)));
values[6] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
values[7] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_True)));
values[8] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)Py_None));
if (__pyx_kwds) {
Py_ssize_t kw_args;
switch (__pyx_nargs) {
case 9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_opencl", 0, 3, 9, 1); __PYX_ERR(0, 241, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_image_interp)) != 0)) {
(void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
kw_args--;
}
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L3_error)
else {
__Pyx_RaiseArgtupleInvalid("_run_opencl", 0, 3, 9, 2); __PYX_ERR(0, 241, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_magnification);
if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ringRadius);
if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_border);
if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_radialityPositivityConstraint);
if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_doIntensityWeighting);
if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_device);
if (value) { values[8] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_run_opencl") < 0)) __PYX_ERR(0, 241, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
case 9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_image = values[1];
__pyx_v_image_interp = values[2];
__pyx_v_magnification = values[3];
__pyx_v_ringRadius = values[4];
__pyx_v_border = values[5];
__pyx_v_radialityPositivityConstraint = values[6];
__pyx_v_doIntensityWeighting = values[7];
__pyx_v_device = values[8];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_run_opencl", 0, 3, 9, __pyx_nargs); __PYX_ERR(0, 241, __pyx_L3_error)
goto __pyx_L3_error;
__pyx_L3_error:;
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_opencl", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_16_run_opencl(__pyx_self, __pyx_v_self, __pyx_v_image, __pyx_v_image_interp, __pyx_v_magnification, __pyx_v_ringRadius, __pyx_v_border, __pyx_v_radialityPositivityConstraint, __pyx_v_doIntensityWeighting, __pyx_v_device);
/* function exit code */
{
Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
__Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
}
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_7nanopyx_6liquid_13_le_radiality_9Radiality_16_run_opencl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_image, PyObject *__pyx_v_image_interp, PyObject *__pyx_v_magnification, PyObject *__pyx_v_ringRadius, PyObject *__pyx_v_border, PyObject *__pyx_v_radialityPositivityConstraint, CYTHON_UNUSED PyObject *__pyx_v_doIntensityWeighting, PyObject *__pyx_v_device) {
PyObject *__pyx_v_cl_ctx = NULL;
PyObject *__pyx_v_cl_queue = NULL;
PyObject *__pyx_v_code = NULL;
float __pyx_v__ringRadius;
int __pyx_v_nRingCoordinates;
float __pyx_v_angleStep;
float __pyx_v_xRingCoordinates[12];
float __pyx_v_yRingCoordinates[12];
int __pyx_v_angleIter;
int __pyx_v_nFrames;
int __pyx_v_h;
int __pyx_v_w;
__Pyx_memviewslice __pyx_v_imGx = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_imGy = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_image_MV = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_f;
PyObject *__pyx_v_image_in = NULL;
PyObject *__pyx_v_imageinter_in = NULL;
PyObject *__pyx_v_imGx_in = NULL;
PyObject *__pyx_v_imGy_in = NULL;
PyObject *__pyx_v_imRad_out = NULL;
PyObject *__pyx_v_xRingCoordinates_in = NULL;
PyObject *__pyx_v_yRingCoordinates_in = NULL;
PyObject *__pyx_v_lowest_row = NULL;
PyObject *__pyx_v_highest_row = NULL;
PyObject *__pyx_v_lowest_col = NULL;
PyObject *__pyx_v_highest_col = NULL;
PyObject *__pyx_v_prg = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_run_opencl", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XCLEAR_MEMVIEW(&__pyx_t_9, 1);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_XDECREF(__pyx_t_23);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_XDECREF(__pyx_t_25);
__Pyx_XDECREF(__pyx_t_26);
__Pyx_XDECREF(__pyx_t_27);
__Pyx_XDECREF(__pyx_t_28);
__Pyx_XDECREF(__pyx_t_29);
__Pyx_XDECREF(__pyx_t_30);
__Pyx_XDECREF(__pyx_t_31);
__Pyx_XDECREF(__pyx_t_32);
__Pyx_XDECREF(__pyx_t_33);
__Pyx_XDECREF(__pyx_t_34);
__Pyx_AddTraceback("nanopyx.liquid._le_radiality.Radiality._run_opencl", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_cl_ctx);
__Pyx_XDECREF(__pyx_v_cl_queue);
__Pyx_XDECREF(__pyx_v_code);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGx, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_imGy, 1);
__PYX_XCLEAR_MEMVIEW(&__pyx_v_image_MV, 1);
__Pyx_XDECREF(__pyx_v_image_in);
__Pyx_XDECREF(__pyx_v_imageinter_in);
__Pyx_XDECREF(__pyx_v_imGx_in);
__Pyx_XDECREF(__pyx_v_imGy_in);
__Pyx_XDECREF(__pyx_v_imRad_out);
__Pyx_XDECREF(__pyx_v_xRingCoordinates_in);
__Pyx_XDECREF(__pyx_v_yRingCoordinates_in);
__Pyx_XDECREF(__pyx_v_lowest_row);
__Pyx_XDECREF(__pyx_v_highest_row);
__Pyx_XDECREF(__pyx_v_lowest_col);
__Pyx_XDECREF(__pyx_v_highest_col);
__Pyx_XDECREF(__pyx_v_prg);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__35 = PyTuple_Pack(37, __pyx_n_s_self, __pyx_n_s_image, __pyx_n_s_image_interp, __pyx_n_s_magnification, __pyx_n_s_ringRadius, __pyx_n_s_border, __pyx_n_s_radialityPositivityConstraint, __pyx_n_s_doIntensityWeighting, __pyx_n_s_device, __pyx_n_s_cl_ctx, __pyx_n_s_cl_queue, __pyx_n_s_code, __pyx_n_s_ringRadius_2, __pyx_n_s_nRingCoordinates, __pyx_n_s_angleStep, __pyx_n_s_xRingCoordinates, __pyx_n_s_yRingCoordinates, __pyx_n_s_angleIter, __pyx_n_s_nFrames, __pyx_n_s_h, __pyx_n_s_w, __pyx_n_s_imGx, __pyx_n_s_imGy, __pyx_n_s_image_MV, __pyx_n_s_f, __pyx_n_s_image_in, __pyx_n_s_imageinter_in, __pyx_n_s_imGx_in, __pyx_n_s_imGy_in, __pyx_n_s_imRad_out, __pyx_n_s_xRingCoordinates_in, __pyx_n_s_yRingCoordinates_in, __pyx_n_s_lowest_row, __pyx_n_s_highest_row, __pyx_n_s_lowest_col, __pyx_n_s_highest_col, __pyx_n_s_prg); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__35);
__Pyx_GIVEREF(__pyx_tuple__35);
__pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(9, 0, 0, 37, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_nanopyx_liquid__le_radiality, __pyx_n_s_run_opencl, 241, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 241, __pyx_L1_error)
/* … */
__pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_7nanopyx_6liquid_13_le_radiality_9Radiality_17_run_opencl, 0, __pyx_n_s_Radiality__run_opencl, NULL, __pyx_n_s_nanopyx_liquid__le_radiality, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_tuple__37);
if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_run_opencl, __pyx_t_11) < 0) __PYX_ERR(0, 241, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
242:
+243: cl_ctx = cl.Context([device['device']])
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cl); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Context); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_device, __pyx_n_u_device); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_v_cl_ctx = __pyx_t_1; __pyx_t_1 = 0;
+244: cl_queue = cl.CommandQueue(cl_ctx)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cl); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_CommandQueue); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_cl_ctx}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __pyx_v_cl_queue = __pyx_t_1; __pyx_t_1 = 0;
245:
+246: code = self._get_cl_code("_le_radiality.cl", device['DP'])
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_cl_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_device, __pyx_n_u_DP); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_kp_u_le_radiality_cl, __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __pyx_v_code = __pyx_t_1; __pyx_t_1 = 0;
247:
+248: cdef float _ringRadius = ringRadius * magnification
__pyx_t_1 = PyNumber_Multiply(__pyx_v_ringRadius, __pyx_v_magnification); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_6 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v__ringRadius = __pyx_t_6;
249:
+250: cdef int nRingCoordinates = 12
__pyx_v_nRingCoordinates = 12;
+251: cdef float angleStep = (pi * 2.) / nRingCoordinates
__pyx_v_angleStep = ((M_PI * 2.) / ((double)__pyx_v_nRingCoordinates));
252: cdef float[12] xRingCoordinates, yRingCoordinates
253:
+254: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
+255: for angleIter in range(nRingCoordinates):
__pyx_t_5 = __pyx_v_nRingCoordinates;
__pyx_t_7 = __pyx_t_5;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_angleIter = __pyx_t_8;
+256: xRingCoordinates[angleIter] = cos(angleStep * angleIter) * _ringRadius
(__pyx_v_xRingCoordinates[__pyx_v_angleIter]) = (cos((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
+257: yRingCoordinates[angleIter] = sin(angleStep * angleIter) * _ringRadius
(__pyx_v_yRingCoordinates[__pyx_v_angleIter]) = (sin((__pyx_v_angleStep * __pyx_v_angleIter)) * __pyx_v__ringRadius);
}
}
258:
259:
+260: cdef int nFrames = image.shape[0]
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_image, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_nFrames = __pyx_t_5;
+261: cdef int h = image.shape[1]
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_image, __pyx_n_s_shape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_h = __pyx_t_5;
+262: cdef int w = image.shape[2]
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_image, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_w = __pyx_t_5;
263:
+264: cdef float [:,:,:] imGx = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_image}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_imGx = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+265: cdef float [:,:,:] imGy = np.zeros_like(image)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros_like); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_image}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_imGy = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+266: cdef float[:,:,:] image_MV = image
__pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_float(__pyx_v_image, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 266, __pyx_L1_error) __pyx_v_image_MV = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+267: with nogil:
{
#ifdef WITH_THREAD
PyThreadState *_save;
_save = NULL;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L10;
}
__pyx_L10:;
}
}
+268: for f in range(nFrames):
__pyx_t_5 = __pyx_v_nFrames;
__pyx_t_7 = __pyx_t_5;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_f = __pyx_t_8;
+269: _c_gradient_radiality(&image_MV[f,0,0], &imGx[f,0,0], &imGy[f,0,0], h, w)
__pyx_t_10 = __pyx_v_f;
__pyx_t_11 = 0;
__pyx_t_12 = 0;
__pyx_t_13 = __pyx_v_f;
__pyx_t_14 = 0;
__pyx_t_15 = 0;
__pyx_t_16 = __pyx_v_f;
__pyx_t_17 = 0;
__pyx_t_18 = 0;
_c_gradient_radiality((&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_image_MV.data + __pyx_t_10 * __pyx_v_image_MV.strides[0]) ) + __pyx_t_11 * __pyx_v_image_MV.strides[1]) ) + __pyx_t_12 * __pyx_v_image_MV.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGx.data + __pyx_t_13 * __pyx_v_imGx.strides[0]) ) + __pyx_t_14 * __pyx_v_imGx.strides[1]) ) + __pyx_t_15 * __pyx_v_imGx.strides[2]) )))), (&(*((float *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_imGy.data + __pyx_t_16 * __pyx_v_imGy.strides[0]) ) + __pyx_t_17 * __pyx_v_imGy.strides[1]) ) + __pyx_t_18 * __pyx_v_imGy.strides[2]) )))), __pyx_v_h, __pyx_v_w);
}
}
270:
+271: image_in = cl_array.to_device(cl_queue, image)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cl_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_to_device); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_v_cl_queue, __pyx_v_image}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_v_image_in = __pyx_t_4; __pyx_t_4 = 0;
+272: imageinter_in = cl_array.to_device(cl_queue, image_interp)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cl_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_to_device); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_cl_queue, __pyx_v_image_interp}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_v_imageinter_in = __pyx_t_4; __pyx_t_4 = 0;
+273: imGx_in = cl_array.to_device(cl_queue, np.array(imGx, dtype=np.float32))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cl_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_to_device); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_imGx, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_n_s_np); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_n_s_float32); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_21) < 0) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_19, __pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_v_cl_queue, __pyx_t_21}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_v_imGx_in = __pyx_t_4; __pyx_t_4 = 0;
+274: imGy_in = cl_array.to_device(cl_queue, np.array(imGy, dtype=np.float32))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cl_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_to_device); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_imGy, 3, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_float32); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_20) < 0) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_19, __pyx_t_3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_cl_queue, __pyx_t_20}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_21, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __pyx_v_imGy_in = __pyx_t_4; __pyx_t_4 = 0;
+275: imRad_out = cl_array.zeros(cl_queue, (nFrames, h*magnification, w*magnification), dtype=np.float32)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cl_array); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_nFrames); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_h); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_3 = PyNumber_Multiply(__pyx_t_20, __pyx_v_magnification); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = __Pyx_PyInt_From_int(__pyx_v_w); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_19 = PyNumber_Multiply(__pyx_t_20, __pyx_v_magnification); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = PyTuple_New(3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_GIVEREF(__pyx_t_4); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_4)) __PYX_ERR(0, 275, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_t_3)) __PYX_ERR(0, 275, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_19); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_20, 2, __pyx_t_19)) __PYX_ERR(0, 275, __pyx_L1_error); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_19 = 0; __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_INCREF(__pyx_v_cl_queue); __Pyx_GIVEREF(__pyx_v_cl_queue); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_v_cl_queue)) __PYX_ERR(0, 275, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_20); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_20)) __PYX_ERR(0, 275, __pyx_L1_error); __pyx_t_20 = 0; __pyx_t_20 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_float32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_20, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_19, __pyx_t_20); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_v_imRad_out = __pyx_t_4; __pyx_t_4 = 0;
276:
+277: xRingCoordinates_in = cl_array.to_device(cl_queue, np.array(xRingCoordinates, dtype=np.float32))
__Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_n_s_cl_array); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_n_s_to_device); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_n_s_np); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_n_s_array); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = __Pyx_carray_to_py_float(__pyx_v_xRingCoordinates, 12); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_20); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_20)) __PYX_ERR(0, 277, __pyx_L1_error); __pyx_t_20 = 0; __pyx_t_20 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float32); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_20, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_3, __pyx_t_20); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_19))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_20, __pyx_v_cl_queue, __pyx_t_2}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_19, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __pyx_v_xRingCoordinates_in = __pyx_t_4; __pyx_t_4 = 0;
+278: yRingCoordinates_in = cl_array.to_device(cl_queue, np.array(yRingCoordinates, dtype=np.float32))
__Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_n_s_cl_array); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_to_device); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_n_s_np); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_array); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = __Pyx_carray_to_py_float(__pyx_v_yRingCoordinates, 12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_19); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_19)) __PYX_ERR(0, 278, __pyx_L1_error); __pyx_t_19 = 0; __pyx_t_19 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_float32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_3, __pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_19, __pyx_v_cl_queue, __pyx_t_1}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_v_yRingCoordinates_in = __pyx_t_4; __pyx_t_4 = 0;
279:
280: # Grid size
+281: lowest_row = (1 + border) * magnification
__pyx_t_4 = __Pyx_PyInt_AddCObj(__pyx_int_1, __pyx_v_border, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyNumber_Multiply(__pyx_t_4, __pyx_v_magnification); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_lowest_row = __pyx_t_2; __pyx_t_2 = 0;
+282: highest_row = (h - 1 - border) * magnification
__pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_h - 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyNumber_Subtract(__pyx_t_2, __pyx_v_border); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_4, __pyx_v_magnification); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_highest_row = __pyx_t_2; __pyx_t_2 = 0;
283:
+284: lowest_col = (1 + border) * magnification
__pyx_t_2 = __Pyx_PyInt_AddCObj(__pyx_int_1, __pyx_v_border, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_v_magnification); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_lowest_col = __pyx_t_4; __pyx_t_4 = 0;
+285: highest_col = (w - 1 - border) * magnification
__pyx_t_4 = __Pyx_PyInt_From_long((__pyx_v_w - 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyNumber_Subtract(__pyx_t_4, __pyx_v_border); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_v_magnification); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_highest_col = __pyx_t_4; __pyx_t_4 = 0;
286:
+287: prg = cl.Program(cl_ctx, code).build()
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cl); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Program); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_19))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_v_cl_ctx, __pyx_v_code}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_19, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_build); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_19))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[1] = {__pyx_t_2, }; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_19, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __pyx_v_prg = __pyx_t_4; __pyx_t_4 = 0;
288:
+289: prg.radiality(
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_prg, __pyx_n_s_radiality); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19);
290: cl_queue,
+291: (nFrames, highest_row - lowest_row, highest_col - lowest_col),
__pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nFrames); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Subtract(__pyx_v_highest_row, __pyx_v_lowest_row); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_Subtract(__pyx_v_highest_col, __pyx_v_lowest_col); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_20 = PyTuple_New(3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_GIVEREF(__pyx_t_2); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_2)) __PYX_ERR(0, 291, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_3); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_20, 2, __pyx_t_3)) __PYX_ERR(0, 291, __pyx_L1_error); __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0;
292: None,
+293: image_in.data,
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_image_in, __pyx_n_s_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+294: imageinter_in.data,
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_imageinter_in, __pyx_n_s_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+295: imGx_in.data,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_imGx_in, __pyx_n_s_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+296: imGy_in.data,
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_imGy_in, __pyx_n_s_data); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21);
+297: imRad_out.data,
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_imRad_out, __pyx_n_s_data); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22);
+298: xRingCoordinates_in.data,
__pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_xRingCoordinates_in, __pyx_n_s_data); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23);
+299: yRingCoordinates_in.data,
__pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_yRingCoordinates_in, __pyx_n_s_data); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24);
+300: np.int32(magnification),
__Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_np); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_int32); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_27))) { __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_27); if (likely(__pyx_t_26)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27); __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_27, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_26, __pyx_v_magnification}; __pyx_t_25 = __Pyx_PyObject_FastCall(__pyx_t_27, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; }
+301: np.float32(_ringRadius),
__Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_np); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_float32); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_28); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = PyFloat_FromDouble(__pyx_v__ringRadius); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_29 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_28))) { __pyx_t_29 = PyMethod_GET_SELF(__pyx_t_28); if (likely(__pyx_t_29)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_28); __Pyx_INCREF(__pyx_t_29); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_28, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_29, __pyx_t_26}; __pyx_t_27 = __Pyx_PyObject_FastCall(__pyx_t_28, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0; }
+302: np.int32(nRingCoordinates),
__Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_np); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_29 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_int32); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_29); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = __Pyx_PyInt_From_int(__pyx_v_nRingCoordinates); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_30 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_29))) { __pyx_t_30 = PyMethod_GET_SELF(__pyx_t_29); if (likely(__pyx_t_30)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_29); __Pyx_INCREF(__pyx_t_30); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_29, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_30, __pyx_t_26}; __pyx_t_28 = __Pyx_PyObject_FastCall(__pyx_t_29, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_28); __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; }
+303: np.int32(radialityPositivityConstraint),
__Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_np); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_30 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_int32); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_30); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_30))) { __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_30); if (likely(__pyx_t_26)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_30); __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_30, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_26, __pyx_v_radialityPositivityConstraint}; __pyx_t_29 = __Pyx_PyObject_FastCall(__pyx_t_30, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_29); __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; }
+304: np.int32(border),
__Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_np); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_int32); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_31))) { __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_31); if (likely(__pyx_t_26)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_31); __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_31, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_26, __pyx_v_border}; __pyx_t_30 = __Pyx_PyObject_FastCall(__pyx_t_31, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_30); __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; }
+305: np.int32(h),
__Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_np); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_32 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_int32); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = __Pyx_PyInt_From_int(__pyx_v_h); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_33 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_32))) { __pyx_t_33 = PyMethod_GET_SELF(__pyx_t_32); if (likely(__pyx_t_33)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_32); __Pyx_INCREF(__pyx_t_33); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_32, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_33, __pyx_t_26}; __pyx_t_31 = __Pyx_PyObject_FastCall(__pyx_t_32, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0; }
+306: np.int32(w)
__Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_np); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_33 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_int32); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = __Pyx_PyInt_From_int(__pyx_v_w); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_34 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_33))) { __pyx_t_34 = PyMethod_GET_SELF(__pyx_t_33); if (likely(__pyx_t_34)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_33); __Pyx_INCREF(__pyx_t_34); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_33, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_34, __pyx_t_26}; __pyx_t_32 = __Pyx_PyObject_FastCall(__pyx_t_33, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_34); __pyx_t_34 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; } __pyx_t_33 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_19))) { __pyx_t_33 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_33)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_33); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[18] = {__pyx_t_33, __pyx_v_cl_queue, __pyx_t_20, Py_None, __pyx_t_3, __pyx_t_1, __pyx_t_2, __pyx_t_21, __pyx_t_22, __pyx_t_23, __pyx_t_24, __pyx_t_25, __pyx_t_27, __pyx_t_28, __pyx_t_29, __pyx_t_30, __pyx_t_31, __pyx_t_32}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_19, __pyx_callargs+1-__pyx_t_5, 17+__pyx_t_5); __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0; __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
307: )
308:
+309: cl_queue.finish()
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_cl_queue, __pyx_n_s_finish); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_32 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_19))) { __pyx_t_32 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_32)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_32); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[1] = {__pyx_t_32, }; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_19, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
310:
+311: return np.asarray(imRad_out.get(),dtype=np.float32)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_32 = __Pyx_PyObject_GetAttrStr(__pyx_v_imRad_out, __pyx_n_s_get); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __pyx_t_31 = NULL; __pyx_t_5 = 0; #if CYTHON_UNPACK_METHODS if (likely(PyMethod_Check(__pyx_t_32))) { __pyx_t_31 = PyMethod_GET_SELF(__pyx_t_32); if (likely(__pyx_t_31)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_32); __Pyx_INCREF(__pyx_t_31); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_32, function); __pyx_t_5 = 1; } } #endif { PyObject *__pyx_callargs[1] = {__pyx_t_31, }; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_32, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0; } __pyx_t_32 = PyTuple_New(1); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_GIVEREF(__pyx_t_4); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_32, 0, __pyx_t_4)) __PYX_ERR(0, 311, __pyx_L1_error); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_31, __pyx_n_s_np); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __pyx_t_30 = __Pyx_PyObject_GetAttrStr(__pyx_t_31, __pyx_n_s_float32); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_30); __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_30) < 0) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; __pyx_t_30 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_32, __pyx_t_4); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_30); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_30; __pyx_t_30 = 0; goto __pyx_L0;
312: